admin管理员组文章数量:1487745
【C语言】斐波那契数列细讲
什么是斐波那契数列? 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契斐波那契斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上
一.细讲数列:
画的不好,大家凑合着看.大致的意思就是:前两位的和等于第3位
二.细讲运算方法:
递归计算:
代码语言:javascript代码运行次数:0运行复制int fbnq(int n)
{
if (n <= 2)
return 1;
else
return fbnq(n - 1) + fbnq(n - 2);
}
int main()
{
int n=0;
int c=0;
printf("输入数");
scanf("%d",&n);
c=fbnq(n);
printf("%d",c);
return 0;
}
但是递归在计算时,有一个致命的缺陷就是,数字大的时候需要非常大的工作量,会导致计算时间非常 的长,且都是重复的步骤。
迭代计算:
这个时候我们想到递归和迭代的区别,我在递归和迭代详解中详细的讲述了两者区别,当一个问题相当复杂,难以用递归实现时,此时迭代实现的简洁性便可以补偿它所带来的运行时开销
代码语言:javascript代码运行次数:0运行复制int fbnq(int n)
{
int a, b, c;
a = 1;
b = 1;
c = 0;
if (n <= 2)
{
return 1;
}
while (n > 2)
{
n--;
c = a + b;
a = b;
b = c;
}
return c;
}
int main()
{
int n = 0;
int c = 0;
printf(":");
scanf("%d", &n);
c = fbnq(n);
printf("%d", c);
return 0;
}
三.分析:
两者的区别:
1.选择算法的时候想要代码简洁可以考虑递归,但是也要考虑到此算法的弊端。
2.迭代虽然代码多,但是其算法较快比较适合算一下高计算量的题目。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-09-21,如有侵权请联系 cloudcommunity@tencent 删除return递归数学算法int本文标签: C语言斐波那契数列细讲
版权声明:本文标题:【C语言】斐波那契数列细讲 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/shuma/1754758756a3179239.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论