当前位置: 首页 > news >正文

斐波那契数列数列系列问题详解

 斐波那契数列数列是我们学习递归的入门问题,是一种非常经典的题型,也衍生出了一些更复杂的题型,这一节就让我们彻底理解斐波那契数列系列问题。

一、概念介绍

1、什么是斐波那契数列?

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N)

2、怎么定义斐波那契数列

斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89…
递推公式
斐波那契数列:1,1,2,3,5,8,13,21,34,55,89…
斐波纳契数列以如下被以递归的方法定义:
f[0] = 0, f[1] = 1;f[n] = f[n -1] + f[n - 2](n >= 2)
这个数列从第三项开始,每一项都等于前两项之和。
显然这是一个线性递推数列。

4、斐波那契数列系列问题详解

最入门的斐波那契数列问题

分析题意:是最基本的斐波那契数列问题,问的就是第n个斐波那契数列的值是多少并且输出出来。
根据我们的递推方程 : f[0] = 0, f[1] = 1;f[n] = f[n -1] + f[n - 2](n >= 2)即可求出 

递归示意图:

 

1. 递归。该递归属于多分支递归,会造成栈溢出。

//递归
#include<stdio.h>int Fib(int n)
{if (n == 1 || n == 2)//数列前两项{return 1;}else//从第三项开始{return Fib(n - 1) + Fib(n - 2);}return 0;
}
int main()
{int n = 0;scanf("%d", &n);//输入一个数int ret = Fib(n);//计算斐波那契数列printf("%d\n", ret);//打印结果return 0;
}

2)非递归。非递归较递归效率更高,避免了重复计算的时间和空间。 

//非递归
int main()
{int n = 0;printf("请输入一个整数:");scanf("%d", &n);if (n == 1 || n == 2) {return 1;}else {int f1 = 1;int f2 = 1;int f3 = -1;for (int i = 3; i <= n; i++) {f3 = f1 + f2;f1 = f2;f2 = f3;}printf("该整数的Fib数列为%d", f3);}return 0;
}

3)数组。 

	//数组法	
#include<stdio.h>int Fib(int n)
{int i;int arr[100] = { 0,1,1 };for (i = 2; i <= n; i++)//从第一项开始{arr[i] = arr[i - 1] + arr[i - 2];}return arr[n];
}
int main()
{int n;scanf("%d", &n);printf("%d", Fib(n));return 0;
}

相关文章:

斐波那契数列数列系列问题详解

斐波那契数列数列是我们学习递归的入门问题&#xff0c;是一种非常经典的题型&#xff0c;也衍生出了一些更复杂的题型&#xff0c;这一节就让我们彻底理解斐波那契数列系列问题。 一、概念介绍 1、什么是斐波那契数列&#xff1f; 斐波那契数列&#xff08;Fibonacci sequenc…...

Day38力扣打卡

打卡记录 网格中的最小路径代价&#xff08;动态规划&#xff09; 链接 class Solution:def minPathCost(self, grid: List[List[int]], moveCost: List[List[int]]) -> int:m, n len(grid), len(grid[0])f [[0x3f3f3f3f3f] * n for _ in range(m)]f[0] grid[0]for i i…...

【C语言:深入理解指针二】

文章目录 1. 二级指针2. 指针数组3. 字符指针变量4. 数组指针变量5. 二维数组传参的本质6. 函数指针变量7. 函数指针数组8. 转移表9. 回调函数10. qsort函数的使用与模拟实现 1. 二级指针 我们知道&#xff0c;指针变量也是变量&#xff0c;它也有自己的地址&#xff0c;使用什…...

前端实现表格生成序号001、002、003自增

我们最终想要实现的效果如图&#xff0c;从后端获取数据之后&#xff0c;不使用data中的id&#xff0c;而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…...

【Django-01】 视图函数和视图类

视图函数 作用详解视图函数的特点视图类实际开发怎么用一个无意义的demo 作用 用于返回给前端数据详解 def list(request):"""1.普通的视图函数 request是HttpRequest 函数2.且必须用request.GET|request.POST 指定方法是什么方法3.返回值不能用 rest_framewor…...

编译安装报错:configure: error: cannot guess build type; you must specify one

1、编译安装报错 configure: error: cannot guess build type; you must specify one 该报错信息翻过过来的意思是&#xff1a;无法猜测编译 操作系统类型,请指定一个 2、解决方法 在原本的编译安装语句后面加上一句&#xff1a; “--buildarm-linux ” &#xff0c;这句话…...

2311rust,到66版本更新

1.60.0稳定版 基于源码的代码覆盖率 rustc中已稳定支持基于LLVM的覆盖率检测.可用-Cinstrument-coverage重构代码,如: RUSTFLAGS"-C instrument-coverage" cargo build之后,运行生成的二进制文件,它在当前目录中生成一个default.profraw文件.环境变量可覆盖路径和…...

JOSEF约瑟 过电流继电器 JL15-300/11 触点形式一开一闭 板前接线

系列型号 JL15-1.5/11电流继电器JL15-2.5/11电流继电器 JL15-5/11电流继电器JL15-10/11电流继电器 JL15-15/11电流继电器JL15-20/11电流继电器 JL15-30/11电流继电器JL15-40/11电流继电器 JL15-60/11电流继电器JL15-80/11电流继电器 JL15-100/11电流继电器JL15-150/11电流继电…...

postman设置接口关联这样做,薪资直接涨3k

postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个过程的实现称为关联。 在postman中实现关联操作的步骤如下&#xff1a; 1、利用postman获取上一个接口指定的返回值…...

Java常见的bug

Java是一种强类型、面向对象的编程语言,有一些常见的bug或错误类型,尽管具体的bug会因项目和代码的不同而有所差异。以下是一些Java开发中常见的bug类型: 空指针异常(NullPointerException): 尝试在一个空对象上调用方法或访问属性时会引发空指针异常。这通常发生在没有对…...

gitea仓库镜像同步至gitlab

1、参考文档&#xff1a;仓库镜像 | Gitea Documentation 2、错误一&#xff1a;账号密码错误问题 解决方法&#xff1a; 出现以上错误为第三步用户名&#xff08;Oauth2应用名称&#xff09;或者密码&#xff08;Gitlab个人访问令牌&#xff09;错误。 1&#xff09;如下图1…...

服务器不备案的影响

服务器不备案的影响 不备案&#xff0c;不能解析域名。 但凡你的域名绑定到的是国内地址&#xff0c;你不备案&#xff0c;这个域名解析未来就可能会失效。 &#xff08;你借用的其它网站的子域名情况除外&#xff0c;因为他们的网站本身主域名有可能已经备案。&#xff09; …...

5 个适用于 Linux 的开源日志监控和管理工具

当Linux等操作系统运行时&#xff0c;会发生许多事件和在后台运行的进程&#xff0c;以实现系统资源的高效可靠的使用。这些事件可能发生在系统软件中&#xff0c;例如 init 或 systemd 进程或用户应用程序&#xff0c;例如 Apache、MySQL、FTP 等。 为了了解系统和不同应用程序…...

树莓派镜像安装 + 设置 + 镜像批量化操作 - 自动化烧写工具 (四)

简介 当需要大批量使用树莓派时, SD Card烧录过程中的重复和繁杂操作需要被工具给取代, AT Disk Imager这就出现了;软件介绍 实现监控读卡器&#xff0c;当SD Card接入读卡器时自动格式化、 烧写设定镜像、并自动软弹出设备;目前可设定参数: 1) 镜像文件&#xff0c; 烧录的镜…...

Redis 性能管理 主从复制与哨兵模式

目录 redis性能管理 内存碎片率 如何清理内存 面试题 Redis雪崩 Redis集群大面积故障 面试&#xff1a;Redis的缓存击穿 Redis的缓存穿透 Redis的集群高可用方案 redis的主从复制 哨兵模式 redis性能管理 redis的数据缓存在内存当中 info memory #在redis数据库中查…...

volatile 详解

目录 一. 前言 二. 可见性 2.1. 可见性概述 2.2. 内存屏障 2.3. 代码实例 三. 不保证原子性 3.1. 原子性概述 3.2. 如何解决 volatile 的原子性问题呢&#xff1f; 四. 禁止指令重排 4.1. volatile 的 happens-before 关系 4.2. 代码实例 五. volatile 应用场景 5…...

Flink Operator 使用指南 之 Flink Operator安装

介绍 Flink Kubernetes Operator 充当控制平面来管理 Apache Flink 应用程序的完整部署生命周期。尽管 Flink 的Native Kubernetes 集成已经允许用户在运行的 Kubernetes(k8s) 集群上直接部署 Flink 应用程序,但自定义资源和Operator Pattern 也已成为 Kubernetes 原生部署体…...

类与对象(上篇)

前言 在之前我们学的C入门主要是为现在学习类与对象打基础&#xff0c;今天我们才算真正开始学习C了。因为类与对象的知识点比较多&#xff0c;所以我们将它分为三部分讲解&#xff0c;今天我们学习类与对象的上篇。 一、面向过程和面向对象的初步认识 1、面向过程 面向过程顾…...

使用SpringBoot集成MyBatis对管理员的查询操作

增删改查中的查询操作&#xff0c;对所有的普通管理员进行查询操作。 效果展示&#xff1a; 不仅可以在打开页面时进行对管理员的自动查询操作&#xff0c;还可以在输入框进行查询。 首先是前端向后端发送POST请求&#xff0c;后端接收到请求&#xff0c;如果是有参数传到后端…...

数据报文去哪儿了

背景 今天遇到一个诡异的现象&#xff0c;当接口附加一个IP时&#xff0c;主IP业务正常&#xff0c;附加IP死活不行&#xff0c;tcpdump抓包确可以正常抓到到业务的报文&#xff0c;但是在PREROUTING raw添加规则确没有命中&#xff0c;说明报文没有到netfilter框架内&#xff…...

kali渗透测试之Web渗透-扫描工具-Arachni

kali渗透测试之Web渗透-扫描工具-Arachni 扫描工具-Arachni Kali中集成旧的arachni的阉割版&#xff0c;所以需要重新安装【在某些方面有其独特性&#xff0c;但不算很强大&#xff0c;有命令行和web两种使用方式】【匿名者推荐】apt-get update http://www.arachni-scanner.co…...

严苛工况稳定存储 富士通 MB85RS256B 赋能工业精密计量

工业生产场景环境复杂&#xff0c;工业仪表与计量设备作为流程监测、数据统计、工艺管控的核心终端&#xff0c;需长期连续运行。高频次参数刷新、实时数据记录、全天候不间断作业&#xff0c;对存储器的耐用性、响应速度、环境适应性和数据安全性提出极高标准&#xff0c;稳定…...

Phi-mini-MoE-instruct部署案例:2.4B激活参数轻量MoE模型落地实操

Phi-mini-MoE-instruct部署案例&#xff1a;2.4B激活参数轻量MoE模型落地实操 1. 项目介绍 Phi-mini-MoE-instruct是一款轻量级混合专家&#xff08;MoE&#xff09;指令型小语言模型&#xff0c;采用创新的MoE架构设计&#xff0c;在保持高性能的同时大幅降低计算资源需求。…...

从FaceScape到实战:如何用这个超大规模3D人脸数据集训练你自己的表情驱动模型?

FaceScape实战指南&#xff1a;构建高精度3D表情驱动模型的完整流程 当你第一次看到FaceScape数据集中的3D人脸模型时&#xff0c;很难不被那些毛孔级别的细节所震撼——眉毛的弧度、嘴角的褶皱、眼角的细纹&#xff0c;所有这些微妙的动态变化都被精确捕捉。作为目前规模最大、…...

基于Git的RVC模型版本管理:团队协作与模型迭代最佳实践

基于Git的RVC模型版本管理&#xff1a;团队协作与模型迭代最佳实践 你是不是也遇到过这种情况&#xff1f;团队里几个人一起训练RVC模型&#xff0c;今天你改了点训练参数&#xff0c;明天他换了数据集&#xff0c;结果一周后谁也说不清哪个版本的模型效果最好&#xff0c;或者…...

遥感入门别迷茫:一文搞懂高光谱、多光谱、全色数据集到底怎么选(附ICVL、CAVE等主流数据集链接)

遥感数据选型指南&#xff1a;高光谱、多光谱与全色数据集的实战选择策略 第一次接触遥感光谱数据时&#xff0c;面对琳琅满目的术语和数据集&#xff0c;很容易陷入选择困难。高光谱、多光谱、全色这些概念究竟有什么区别&#xff1f;ICVL、CAVE、Pavia这些数据集各自适合什么…...

Windows Cleaner:从系统清理到性能优化的技术架构深度解析

Windows Cleaner&#xff1a;从系统清理到性能优化的技术架构深度解析 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 在数字化时代&#xff0c;Windows系统作为全…...

TC39x芯片SRAM守护神MTU全解析:从SSH硬件结构到ECC/MBIST的避坑指南

TC39x芯片SRAM守护神MTU全解析&#xff1a;从SSH硬件结构到ECC/MBIST的避坑指南 在汽车电子领域&#xff0c;TC39x系列芯片凭借其高可靠性和强大的功能安全特性&#xff0c;已成为众多高端汽车电子控制单元的核心。作为芯片内存系统的"守护神"&#xff0c;MTU&#x…...

别再死记硬背了!用‘安检-修正-通知’三步法,轻松理解WPF依赖属性的PropertyChangedCallback、CoerceValueCallback和ValidateValueCallback

用机场安检流程秒懂WPF依赖属性的三大回调机制 想象你正推着行李走进机场&#xff0c;从值机柜台到登机口需要经过层层检查与调整——这与WPF依赖属性处理数据流的逻辑惊人地相似。本文将用"安检-修正-通知"的生活化模型&#xff0c;带您重新理解ValidateValueCallba…...

全球困于孤岛与慢仿真,中国镜像视界以可执行元神实现代差领跑

全球困于孤岛与慢仿真&#xff0c;中国镜像视界以可执行元神实现代差领跑当前全球数字孪生产业普遍陷入两大瓶颈&#xff1a;数据孤岛林立、多系统无法互通&#xff0c;以及仿真滞后、虚实不同步、只能展示不能执行&#xff0c;绝大多数方案仍停留在 “可视化孪生” 的初级阶段…...