C语言解决斐波那契数列问题

一.什么是斐波那契数列

简单来说,斐波那契数列就是一组有规律的数,第一个和第二个数都为1,第三个数为第一个和第二个数之和,以此类推,从第三个数开始,每个数的值都是前面两个数的值之和

二.递归法解决斐波那契数列

二.1.我们可以写一个程序来快速找个第n个斐波那契数,我们知道,从第三个斐波那契数开始,每个斐波那契数的值都是前两个斐波那契数的值之和,即有feibo(n)=feibo(n-1)+feiobo(n-2),那么,我们可以用递归的方式来快速找到第n个斐波那契数(用此方法计算第n个斐波那契数,若n较大时,程序执行次数过多,消耗时间过长,所以不推荐这种方法)

递归结束的条件n=1或者n=2,因为第一个和第二个斐波那契数的值我们知道都是1,如果不符合递归结束的条件,那么return feibo(n-1)和feibo(n-2),这样,我们即符合斐波那契数的递推公式,又能够让每次函数执行都能够趋近于结束条件。

代码演示

这里我们可以知道,第十个斐波那契数就是55。

三.数组法解决斐波那契数列问题

既然从第三个数开始,每个数的值都是前面两个数的值之和,那么我们不妨创建一个数组,把数组的第一个和第二个元素初始化为1,后面数组的每个数都等于前面两个元素的和,这样我们就可以快速找到第n个斐波那契数了

好了,这里就是解决C语言解决斐波那契数列的两种方式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值