斐波那契数列(九)

关于斐波那契数列 关于斐波那契数列   友情提醒:由于本人很蒻,所以文章中的一些推导会有一些不严谨,大家看着就当图个乐qwq。 一、斐波那契数列的生成函数   在说这个玩意儿之前,我们先讲一下什么是生成函数。 生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。最早提出母函数的人是法国数学家LaplaceP.S.在其1812年出版的《概率的分析理论》中明确提出。 生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。 生成函数的应用简单来说在于研究未知(通项)数列规律,用这种方法在给出递推式的情 阅读详情

题目
输入一个整数 n ,求斐波那契数列的第 n 项。

假定从0开始,第0项为0。(n<=39)

样例

输入整数 n=5

返回 5

算法:
(递推) O(n)
这题的数据范围很小,我们直接模拟即可。
当数据范围很大时,就需要采用其他方式了,可以参考 求解斐波那契数列的若干方法 。

用两个变量滚动式得往后计算,a 表示第 n−1 项,b 表示第 n 项。
则令 c=a+b表示第 n+1 项,然后让 a,b顺次往后移一位。

时间复杂度分析
总共需要计算 n次,所以时间复杂度是 O(n)。

class Solution {
    public int Fibonacci(int n) {
         int a0 = 0;
         int a1 = 1;
         while(n-- > 0){
             int res = a0 + a1;
             a0 = a1;
             a1 = res;
         }
         return a0;
    }
}

递归
时间复杂度O(2^n)

class Solution {
    public int Fibonacci(int n) {
        if(n < 2) return n;
        return Fibonacci(n-1)+Fibonacci(n-2);
    }
}
斐波那契数列的代码实现 已知斐波那契数列 F ​n ​​ =F ​n−1 ​​ +F ​n−2 ​​ (n>=3),F ​1 ​​ =1,F ​2 ​​ =1 用递归的方法求解该数列的第n项。 输入格式: 输入一个正整数n (1<=n<=40)。 输出格式: 输出一个数,数列的第n项 输入样例1: 1 输出样例1: 1 输入样例2: 3 立即下载

相关推荐

uniapp:K线图,支持H5,APP

K线,1分钟搞定。备注详细,无需理解,直接复制即可。

sunluyi的博客 4575

《剑指offer刷题笔记》9、斐波那契数列 【c++详细题解】

题目 输入一个整数 n ,求斐波那契数列的第 n 项。 假定从 0 开始,第 0 项为 0。(n≤39)(n≤39)(n≤39) 样例 输入整数 n=5 返回 5 思路1 递推O(n)O(n)O(n) 递推公式 : f[i] = f[i-1] + f[i-2]; 代码1 class Solution { public: int Fibonacci(int n) { int f[10010]; f[0] = 0; f[1] = 1;

林深不见鹿 的博客 281

告别Keil手动分区!用CubeMX+VS Code一键生成带Bootloader的STM32 OTA工程

本文详细介绍了如何利用STM32CubeMX和VS Code实现STM32 OTA工程的自动化构建,告别传统Keil手动分区的繁琐流程。通过图形化配置Flash分区、自动生成链接脚本以及实现Bootloader跳转逻辑,开发者可以高效完成远程升级功能开发,显著提升嵌入式开发效率。

weixin_33720956的博客 389

斐波那契数列的各种求法

斐波那契数列百科名片 “斐波那契数列”是意大利数学家列昂纳多·斐波那契首先研究的一种递归数列, 它的每一项都等于前两项之和。 此数列的前几项为1,1,2,3,5等等。 在生物数学中,许多生物现象都会呈现出斐波那契数列的规律。斐波那契数列相邻两项的比值趋近于黄金分割数。此外,斐波那契数也以密码的方式出现在诸如《达芬奇密码》的影视书籍中。 目录[隐藏] 【奇妙的属性】 【影视链...

weixin_30853329的博客 1224

MATLAB仿真实战:双有源桥(DAB)变换器的扩展移相调制(EPS)全流程解析

本文提供了一份详细的MATLAB/Simulink仿真实战指南,手把手解析双有源桥(DAB)变换器在扩展移相调制(EPS)下的全流程建模。内容涵盖从核心原理、主功率电路搭建、EPS驱动信号生成,到仿真运行、波形分析及模型优化的完整步骤,旨在帮助工程师和研究者快速掌握DAB变换器的仿真与性能验证方法。

o4p5q6r7s的博客 503

【KingSCADA】如何建立硬件系统及相关变量

本篇主要讲解如何定义设备,如何定义变量。KingSCADA3.8的采集系统是指负责和现场设备进行通讯,并采集现场数据和控制现场数据的模块,称之为采集器,也叫IOServer应用,它是一组独立的应用程序,可以脱离KingSCADA3.8软件,它依赖于KingSCADA3.8驱动产品,通过驱动与IO设备进行通讯。采集系统由通讯链路,设备,数据块组成。链路:链路是指计算机通过什么方式(接口)与设备进行连接,链路类别:串口,以太网,GPRS,Modem,通信卡,采集卡,无链路。

做有价值的事,积累有价值的笔记! 1万+

9.斐波那契数列

斐波那契数列(Fibonacci sequence),也称之为黄金分割数列,由意大利数学家列昂纳多・斐波那契(Leonardo Fibonacci)提出。斐波那契数列指的是这样的一个数列:1、1、2、3、5、8、13、21、34、……,这个数列从第 3 项开始,每一项都等于前面两项之和。

最棒的yee 281

openlayers:实现在连续更改时间维度时如何平滑地重新加载层 (附完整源码)

openlayers:实现在连续更改时间维度时如何平滑地重新加载层 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 347

使用递归方法计算斐波那契数列详解

斐波那契数列:1、1、2、3、5、8、13、21.。。。。。。 首先观察数列,得出规律:f(n)=f(n-1)+f(n-2),n为位数; 其次,定义一个feibonaqie类,构造出方法,由题目易知,当n=1和2时,数列都为1,从第三位开始满足公式,所以可以利用if-else语句来安排条件。 最后,编写一个测试类,调用feibonaqie类中的f()方法 public class feibonaqie { public int f(int i){ if(i<=2)

kkkyzp的博客 6526

【MT7628】固件开发-SDK4320添加MT7612E WiFi驱动操作说明

【MT7628】固件开发-SDK4320添加MT7612E WiFi驱动操作说明

wgl307293845的博客 2079

主成分分析(PCA)简洁高效MATLAB实现详解

本文介绍了一个简洁高效的PCA算法实现。该实现通过SVD分解计算主成分,避免了显式协方差矩阵计算,支持两种降维方式:固定维度或按能量比例自动选择。核心步骤包括数据中心化、SVD分解和维度选择,代码量少但功能完整,适用于数据预处理、降维和特征提取等任务。实现中考虑了稀疏矩阵转换、默认参数处理等细节,可直接应用于MATLAB环境。

m0_62153576的博客 63

斐波那契数列递归解法

递归解斐波那契数列 斐波那契数列最直观的递归解法: int fib(int n){ if (n<2) { return n; } else { return fib(n-1) + fib(n-2); } } 然而这种解法效率很低,会进行很多重复运算 例如:当计算 fib(5) 时,我们共需要计算1次 fib(4),2次 fib(3),3次 fib(2),5次 fib(1...

fujz123的博客 2万+

innovus:ccopt_design分段长tree操作

这步don't touch保证后面完整cts尽量不会动到已经长过的tree。需要给sub tree手写一个spec,参考create_ccopt_clock_tree_spec -file的写法,只写create_ccopt_clock_tree和skew group部分就行。

m0_61544122的博客 1677

题目九:斐波那契数列

///////////////////////////////////////////////////////////////////////////////////////////// // 13.题目九:斐波那契数列 /*写一个函数,输入N,求斐波那契(Fibonacci)数列的第N项. F(n) = {0 n == 0; 1 n == 1; F(n...

weixin_30455365的博客 164

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【面试题九】斐波那契数列

斐波那契数列

zling_1989的专栏 732

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

《剑指Offer》面试题九之斐波那契数列

题目描述编写一个函数,要求输入n,然后打印斐波那契数列的第n项。解题思路一因为在很多书的有关递归的的章节都会拿出这个例子来讲,所以说我们的第一印象就是使用递归来解决这个题目。 public static int getFibonacciIndexN(int n) { if (n <= 0) { return 0; } else if (n

未思 915

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

《剑指offer》【面试题九:斐波那契数列】

面试题九:斐波那契数列对于需要进行多次重复计算的问题的时候,我们会遇到循环,或者递归。递归是在一个函数的内部调用这个函数本身。而循环则是通过设置计算的初始值及终止条件,在一个范围内重复运算。递归虽然比较简洁,但是由于递归是函数调用自身,而函数调用是有时间和空间消耗的;每一次函数调用,都需要在内存栈中分配空间以保存参数,返回地址及临时变量,而且往栈里压入数据和弹出数据都需要时间;除了效率之外,递归还...

IT_model的博客 1204

剑指Offer算法实现之九:斐波那契数列

题目:写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下: 思路: ① 可用直接将上述公式翻译成递归函数版本。但算法复杂度是指数级的,且不能写成尾递归的形式 ② 可用循环迭代解决 编译环境:ArchLinux+Clang3.3,C++11 实现一:迭代版本。时间复杂度O(n) #include #include using namespace std; lon

1260

剑指Offer----面试题九:斐波那契数列

题目: 写一个函数,输入n,求斐波那契数列(Fibonacci)的第n项,斐波那契数列的定义如下: 方法一: 第一种方法就是我们在学习C或者C++语言时接触到的递归调用,程序源代码如下: #include #include #include #include using std::cin; using std::cout; using std::endl; using s

烽火前秦路 1684

【剑指offer】面试题九:斐波那契数列

题目:写一个函数,输入 n,求斐波那契(Fibonaci)数列的第 n 项。斐波那契数列的定义如下: 解法一、效率低下的递归解法 代码如下: 1 // Fanbonacci.c 2 #include "stdio.h" 3 #include "stdlib.h" 4 5 long long Fabonacci(unsigned int n) 6 {...

weixin_30840573的博客 128

斐波那契数列

package f3; import java.util.Scanner; //斐波那契数列 public class F32 { public static void main(String[] args) {     System.out.println("输入n: "); /*    Scanner sc=new Scanner(System.in);     int n=sc.n...

qq_37843372的博客 231

c语言斐波那契数列_斐波那契数列的四种实现

来自:Crossin的编程教室孔乙己自己知道不能和他们谈天,便只好向 Intern 说话。有一回对我说道,“你写过代码么?”我略略点一点头。他说,“写过代码,……我便考你一考。斐波那契数列的输出,怎样实现?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些代码应该记着。将来做 Leader 的时候,开发项目要用。”我...

weixin_39626180的博客 3468

c# 斐波那契数列

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

今天也是个小白 6137

C++——斐波那契数列

C++——斐波那契数列 1. 斐波那契数列 斐波那契数列的特征是为0开始,接下来两位数为1或者直接前两位为1开始,从第三位开始,后一位是前面两位之和(也可以看做增加的数是一个首项为2,公差为1的等差数列)。 斐波那契数列也又称黄金分割数列,以兔子繁殖作为引入,也称为兔子数列。(高三数学被这东西折磨够了,现在看见是相见恨晚!!) 斐波那契数列的通项公式为:f(n)=f(n-1)+f(n-2) 2.C++实现 首先我们需要写出一个斐波那契数列的类 #include<iostream> using n

Krisit的博客 2万+
上一篇: 用两个栈实现队列(八)
下一篇: 旋转数组的最小数字(十)
software_Manito
博客等级 码龄8年 6粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值