关于数组的一些应用--------数组作函数的返回值(斐波那契数列数列的实现)

数组在作为函数的返回值,一个很经典的例子就是获取斐波那契数列的前N项

代码思路:

设计思路
输入: 输入一个整数 n,表示要生成斐波那契数列的长度。
输出: 输出一个长度为 n 的整数数组,其中每个元素为斐波那契数列的相应值。
算法:

  •         如果 n 小于等于0,则返回 null。
  •         创建一个长度为 n 的数组,初始化前两个元素为 1。
  •         从第三个元素开始,通过递归的方式填充后续的斐波那契数值。
  •         返回填充完的数组。

代码实现:

public class TestArray {public static int[] fib(int n){if(n <= 0){return null;}int[] array = new int[n];array[0] = array[1] = 1;for (int i = 2; i < n; ++i) {array[i] = array[i-1] + array[i-2];}return array;}public static void main(String[] args) {int[] array =fib(10);for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}}
}

1. fib 方法

public static int[] fib(int n){if(n <= 0){return null;}int[] array = new int[n]; // 创建一个长度为n的整数数组array[0] = array[1] = 1; // 初始化数组的前两个元素为1for (int i = 2; i < n; ++i) {array[i] = array[i-1] + array[i-2]; // 后续元素是前两个元素之和}return array; // 返回包含斐波那契数列的数组
}

功能:
这个方法的主要功能是根据给定的 n 生成一个斐波那契数列,返回一个包含前 n 个斐波那契数的数组。

详细步骤:

输入检查: 如果 n <= 0,表示无效输入,因此返回 null。
数组初始化: 创建一个长度为 n 的整数数组 array,并初始化前两个元素 array[0] 和 array[1] 为 1(这两个是斐波那契数列的前两个数)。
循环生成斐波那契数列: 从 i = 2 开始,通过 array[i] = array[i-1] + array[i-2] 的递推关系生成后续的斐波那契数列值。
返回结果: 最后返回这个已经填充了斐波那契数列值的数组。

2. main 方法

public static void main(String[] args) {int[] array = fib(10); // 调用fib方法,获取斐波那契数列前10个数for (int i = 0; i < array.length; i++) {System.out.println(array[i]); // 打印每个斐波那契数}
}

功能:
在 main 方法中调用 fib(10) 来生成一个包含前 10 个斐波那契数的数组。
然后通过循环遍历该数组,并使用 System.out.println() 输出每个数值。

实现截图:

当 fib(10) 被调用时,数组将被填充为:

                        1, 1, 2, 3, 5, 8, 13, 21, 34, 55
                        这些是斐波那契数列的前 10 个数字。

因此这段代码通过定义一个 fib 方法实现了斐波那契数列的生成,返回一个包含指定数量斐波那契数值的数组。通过一个简单的 for 循环生成后续数值,最终在 main 方法中打印输出该数组。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【IT人物系列】之MySQL创始人

前言 当今世界有无数的人构成&#xff0c;其中有些人做了一些改变世界的事情&#xff0c;比如&#xff1a;乔布斯缔造了Apple帝国&#xff0c;‌詹姆斯高斯林创造了Java语言等。正是这些优秀的人做的这些优秀的事情&#xff0c;让这个世界更加美好。因此他们值得铭记。 从今天…

【2025最新计算机毕业设计】基于SpringBoot+Vue智慧养老医护系统(高质量源码,提供文档,免费部署到本地)【提供源码+答辩PPT+文档+项目部署】

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

pytorch镜像源

我以为的 pip install torch2.3.1cu118 torchvision0.18.1cu118 torchaudio2.3.1cu118 -f https://download.pytorch.org/whl/torch_stable.html实际上&#xff0c;有很多加速方案 为提高下载速度可以使用国内的镜像源来安装与 CUDA 11.8 兼容的 PyTorch。 方法 1&#xff1a…

047_小驰私房菜_Qcom 8系列,Jpeg GPU 旋转

【问题背景】 横屏模式下&#xff0c;发现有些三方app拍照旋转了90度。 【修改策略】 adb shell setprop endor.debug.camera.overrideGPURotationUsecase 1 或者在/vendor/etc/camera/camxoverridesettings.txt 里面添加如下内容 overrideGPURotationUsecase1 【解释】 Ga…

源代码编译安装X11及相关库、vim,配置vim(2)

一、编译安装vim 编译时的cofigure选项如下.只有上一步的X11的包安装全了&#xff08;具体哪些是必须的&#xff0c;哪些是多余的没验证&#xff09;&#xff0c;configure才能认为X的库文件和头文件是可以用的 ./configure --prefixpwd/mybuild \--x-includes/path/to/X11/m…

Go语言性能优化-字符串格式化优化

在 Go 语言中,格式化字符串(例如使用 fmt.Sprintf、fmt.Printf 等函数)确实可能对性能产生影响,尤其是当频繁执行格式化操作时。格式化字符串涉及对格式符的解析和数据类型的转换,这会增加额外的开销。为了减少格式化字符串带来的性能影响,可以采取以下一些优化策略: 1…

LSP介绍并实现语言服务

首发于Enaium的个人博客 LSP (Language Server Protocol) 介绍 前段时间我为Jimmer DTO实现了一个 LSP 的语言服务&#xff0c;这是我第一次实现 LSP&#xff0c;所以在这里我分享一下我实现LSP的经验。 首先来看一下效果&#xff0c;图片太多&#xff0c;我就放一部分&#…

谷粒商城项目125-spring整合high-level-client

新年快乐! 致2025年还在努力学习的你! 你已经很努力了&#xff0c;今晚就让自己好好休息一晚吧! 在后端中选用哪种elasticsearch客户端&#xff1f; elasticsearch可以通过9200或者9300端口进行操作 1&#xff09;9300&#xff1a;TCP spring-data-elasticsearch:transport-…

springboot3 redis 批量删除特定的 key 或带有特定前缀的 key

在 Spring Boot 3 中与 Redis 一起使用时&#xff0c;可以通过 Redis 的命令来实现批量删除特定的 Key 或带有特定前缀的 Key。以下是实现方式和注意事项。 使用 RedisTemplate RedisTemplate 是 Spring Boot 提供的一个操作 Redis 的工具&#xff0c;支持各种 Redis 操作。 …

MyBatis-plus sql拦截器

因为业务需求&#xff0c;重新写了一套数据权限。项目中用的是mybtis-plus&#xff0c;正好MyBatis-Plus提供了插件数据权限插件 | MyBatis-Plus&#xff0c;那就根据文档来实现这个需求。 实现&#xff1a; 实现MultiDataPermissionHandler 首先创建MultiDataPermissionHan…

Java字符编码与正则表达式深度解析

Java字符编码与正则表达式深度解析 1. 字符编码发展 1.1 ASCII 码 在计算机最初发明时&#xff0c;主要用于数值计算&#xff0c;但随着计算需求的增加&#xff0c;人们发现计算机可以用来处理文本信息。因此&#xff0c;将字符映射为数字来表示。 字母 ‘A’ 映射为 65&am…

前端(十)js的使用

js的使用 文章目录 js的使用一、模态框二、使用js控制盒子变色三、图片轮播效果四、图片5s消失 一、模态框 <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>* {m…

Docker 远程访问完整配置教程以及核心参数理解

Docker 远程访问完整配置教程 以下是配置 Docker 支持远程访问的完整教程&#xff0c;包括参数说明、配置修改、云服务器安全组设置、主机防火墙配置&#xff0c;以及验证远程访问的详细步骤。 1. 理解 -H fd:// 参数的作用&#xff08;理解了以后容易理解后面的操作&#xff…

第十一章 图论

/* * 题目名称&#xff1a;连通图 * 题目来源&#xff1a;吉林大学复试上机题 * 题目链接&#xff1a;http://t.cn/AiO77VoA * 代码作者&#xff1a;杨泽邦(炉灰) */#include <iostream> #include <cstdio>using namespace std;const int MAXN 1000 10;int fathe…

新服务器Linux网络配置

1、查看网口 ifconfig找到enp3s0或者 ens33&#xff0c;如果有ip&#xff0c;不用配置&#xff0c;本文结束。 2、如果不显示ip,打开文件/etc/sysconfig/network-scripts&#xff08;以enp3s0为例&#xff09; vi /etc/sysconfig/network-scripts/ifcfg-enp3s03、修改 //修…

leetcode hot 100 只出现一次的数字

136. 只出现一次的数字 已解答 简单 相关标签 相关企业 提示 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且…

汇编学习笔记

汇编 1. debug指令 -R命令(register) 查看、改变CPU寄存器的内容 r ax 修改AX中的内容 -D命令(display) 查看内存中的内容 -E命令(enter) 改写内存中的内容 -U命令(unassenble反汇编) 将内存中的机器指令翻译成汇编指令 -T命令(trace跟踪) 执行一条机器指令 -A命令…

Flutter踩坑记-第三方SDK不兼容Gradle 8.0,需适配namespace

最近需要集成Flutter作为Module&#xff0c;Flutter依赖了第三方库&#xff0c;Gradle是8.0版本。 编译报错&#xff1a; 解决办法是在.android根目录下的build.gradle下新增一行代码&#xff1a; buildscript {ext.kotlin_version "1.8.22"repositories {google()…

【Qt】如何保证线程安全(以日志写入为例)

前言 在近日学习中发现&#xff0c;如果开发一个单例模式的日志系统&#xff0c;难免会出现多个线程记录日志的情况&#xff0c;这个时候线程可能导致竞争&#xff0c;或者始料未及的情况发生。 通过学习&#xff0c;如果要保证线程安全&#xff0c;要使用互斥锁QMutex&#xf…

SMMU软件指南之系统架构考虑

安全之安全(security)博客目录导读 目录 5.1 I/O 一致性 5.2 客户端设备 5.2.1 地址大小 5.2.2 缓存 5.3 PCIe 注意事项 5.3.1 点对点通信 5.3.2 No_snoop 5.3.3 ATS 5.4 StreamID 分配 5.5 MSI 本博客介绍与 SMMU 相关的一些系统架构注意事项。 5.1 I/O 一致性 如…