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

数组在作为函数的返回值,一个很经典的例子就是获取斐波那契数列的前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、人工智能…

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

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

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-…

MyBatis-plus sql拦截器

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

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…

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()…

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 一致性 如…

【信息系统项目管理师】【综合知识】【备考知识点】【思维导图】第十一章 项目成本管理

word版☞【信息系统项目管理师】【综合知识】【备考知识点】第十一章 项目成本管理 移动端【思维导图】☞【信息系统项目管理师】【思维导图】第十一章 项目成本管理

计算机毕业设计PyHive+Hadoop深圳共享单车预测系统 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

C++ 复习总结记录二

C 复习总结记录二 主要内容 1、认识面向过程和面向对象 2、类的引入 3、类的定义 4、类的访问限定符及封装 5、类的作用域 6、类的实例化 7、类的对象大小的计算 8、类成员函数的 this 指针 一 认识面向过程和面向对象 C语言是面向过程的&#xff0c;关注的是过程&a…

Mysql运维利器之备份恢复-xtrabackup 安装

1、插件下载 xtrabackup 下载地址 找到自己mysql版本对应得 插件版本下载 2、执行安装命令 yum localinstall percona-xtrabackup-80-8.0.26-18.1.el7.x86_64.rpm 安装完毕&#xff01;查看版本信息 xtrabackup --version 安装完毕&#xff01;&#xff01;&#xff01;

Hoverfly 任意文件读取漏洞(CVE-2024-45388)

漏洞简介 Hoverfly 是一个为开发人员和测试人员提供的轻量级服务虚拟化/API模拟/API模拟工具。其 /api/v2/simulation​ 的 POST 处理程序允许用户从用户指定的文件内容中创建新的模拟视图。然而&#xff0c;这一功能可能被攻击者利用来读取 Hoverfly 服务器上的任意文件。尽管…

Aloudata AIR | 逻辑数据平台的 NoETL 之道

一文为你介绍 Aloudata AIR 逻辑数据平台的技术原理与核心价值 本文主旨是介绍逻辑数据平台的技术原理与核心价值&#xff0c;包含几个部分的内容&#xff1a; 首先&#xff0c;简要阐述逻辑数据平台出现的背景&#xff1b;其次&#xff0c;详细讲解逻辑数据平台的构建方法&am…

c# CodeFirst生成表字段加注释

前置&#xff1a;ORM框架工具使用的FreeSql 背景&#xff1a;开发环境中运行接口&#xff0c;所有的表字段以及备注会自动加上&#xff0c;但是在测试环境时运行就只生成了表&#xff0c;没有把每个字段的注释加上 问题检查&#xff1a; FreeSql CodeFirst 支持将 c# 代码内的注…

【pyqt】(四)Designer布局

布局 之前我们利用鼠标拖动的控件的时候&#xff0c;发现一些部件很难完成对齐这些工作&#xff0c;pyqt为我们提供的多种布局功能不仅可以让排版更加美观&#xff0c;还能够让界面自适应窗口大小的变化&#xff0c;使得布局美观合理。最常使用的三种布局就是垂直河子布局、水…

Flutter Android修改应用名称、应用图片、应用启动画面

修改应用名称 打开Android Studio&#xff0c;打开对应项目的android文件。 选择app下面的manifests->AndroidManifest.xml文件&#xff0c;将android:label"bluetoothdemo2"中的bluetoothdemo2改成自己想要的名称。重新启动或者重新打包&#xff0c;应用的名称…

【HENU】河南大学计院2024 计算机体系结构 期末复习知识点

和光同尘_我的个人主页 一直游到海水变蓝。 体系结构 第一章&#xff1a;计算机系统基础知识计算机系统的实质计算机系统的设计的4个定量原理Amdahl定律CPU性能公式程序的局部性原理: 第二章&#xff1a;指令系统的设计指令系统结构的分类通用寄存器型结构 哈夫曼编码MIPS指令…