斐波那契数列数列系列问题详解
斐波那契数列数列是我们学习递归的入门问题,是一种非常经典的题型,也衍生出了一些更复杂的题型,这一节就让我们彻底理解斐波那契数列系列问题。
一、概念介绍
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;
}相关文章:
斐波那契数列数列系列问题详解
斐波那契数列数列是我们学习递归的入门问题,是一种非常经典的题型,也衍生出了一些更复杂的题型,这一节就让我们彻底理解斐波那契数列系列问题。 一、概念介绍 1、什么是斐波那契数列? 斐波那契数列(Fibonacci sequenc…...
Day38力扣打卡
打卡记录 网格中的最小路径代价(动态规划) 链接 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. 二级指针 我们知道,指针变量也是变量,它也有自己的地址,使用什…...
前端实现表格生成序号001、002、003自增
我们最终想要实现的效果如图,从后端获取数据之后,不使用data中的id,而是使用自己生成的按照顺序自增的序号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 该报错信息翻过过来的意思是:无法猜测编译 操作系统类型,请指定一个 2、解决方法 在原本的编译安装语句后面加上一句: “--buildarm-linux ” ,这句话…...
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设置接口关联 在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这个过程的实现称为关联。 在postman中实现关联操作的步骤如下: 1、利用postman获取上一个接口指定的返回值…...
Java常见的bug
Java是一种强类型、面向对象的编程语言,有一些常见的bug或错误类型,尽管具体的bug会因项目和代码的不同而有所差异。以下是一些Java开发中常见的bug类型: 空指针异常(NullPointerException): 尝试在一个空对象上调用方法或访问属性时会引发空指针异常。这通常发生在没有对…...
gitea仓库镜像同步至gitlab
1、参考文档:仓库镜像 | Gitea Documentation 2、错误一:账号密码错误问题 解决方法: 出现以上错误为第三步用户名(Oauth2应用名称)或者密码(Gitlab个人访问令牌)错误。 1)如下图1…...
服务器不备案的影响
服务器不备案的影响 不备案,不能解析域名。 但凡你的域名绑定到的是国内地址,你不备案,这个域名解析未来就可能会失效。 (你借用的其它网站的子域名情况除外,因为他们的网站本身主域名有可能已经备案。) …...
5 个适用于 Linux 的开源日志监控和管理工具
当Linux等操作系统运行时,会发生许多事件和在后台运行的进程,以实现系统资源的高效可靠的使用。这些事件可能发生在系统软件中,例如 init 或 systemd 进程或用户应用程序,例如 Apache、MySQL、FTP 等。 为了了解系统和不同应用程序…...
树莓派镜像安装 + 设置 + 镜像批量化操作 - 自动化烧写工具 (四)
简介 当需要大批量使用树莓派时, SD Card烧录过程中的重复和繁杂操作需要被工具给取代, AT Disk Imager这就出现了;软件介绍 实现监控读卡器,当SD Card接入读卡器时自动格式化、 烧写设定镜像、并自动软弹出设备;目前可设定参数: 1) 镜像文件, 烧录的镜…...
Redis 性能管理 主从复制与哨兵模式
目录 redis性能管理 内存碎片率 如何清理内存 面试题 Redis雪崩 Redis集群大面积故障 面试:Redis的缓存击穿 Redis的缓存穿透 Redis的集群高可用方案 redis的主从复制 哨兵模式 redis性能管理 redis的数据缓存在内存当中 info memory #在redis数据库中查…...
volatile 详解
目录 一. 前言 二. 可见性 2.1. 可见性概述 2.2. 内存屏障 2.3. 代码实例 三. 不保证原子性 3.1. 原子性概述 3.2. 如何解决 volatile 的原子性问题呢? 四. 禁止指令重排 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入门主要是为现在学习类与对象打基础,今天我们才算真正开始学习C了。因为类与对象的知识点比较多,所以我们将它分为三部分讲解,今天我们学习类与对象的上篇。 一、面向过程和面向对象的初步认识 1、面向过程 面向过程顾…...
使用SpringBoot集成MyBatis对管理员的查询操作
增删改查中的查询操作,对所有的普通管理员进行查询操作。 效果展示: 不仅可以在打开页面时进行对管理员的自动查询操作,还可以在输入框进行查询。 首先是前端向后端发送POST请求,后端接收到请求,如果是有参数传到后端…...
数据报文去哪儿了
背景 今天遇到一个诡异的现象,当接口附加一个IP时,主IP业务正常,附加IP死活不行,tcpdump抓包确可以正常抓到到业务的报文,但是在PREROUTING raw添加规则确没有命中,说明报文没有到netfilter框架内ÿ…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
