这篇文章主要介绍了C语言如何实现斐波那契数列的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何实现斐波那契数列文章都会有所收获,下面我们一起来看看吧。
C语言数据结构递归之斐波那契数列
首先,关于递归深度,递归提供了一个简单的定义。如果调用Fibonacci(),当n为1或2时Fibonacci(n)应返回1;对于其他数值应返回Fibonacci(n-1)+Fibonacci(n-2);
long Fibonacci(n)
{
if (n > 2)
return Fibonacci(n-1)+Fibonacci(n-2);
else
return 1;
}
然后是兔子总数问题。
有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后又生一对兔子,假如兔子都不死,每个月兔子对数为多少?
思考这道题的时候,如果你简单的推算一下,会发现兔子每个月的对数就是斐波那契数列。
第一个月:1对;
第二个月:1对;
第三个月:2对;
第四个月:3对:
第五个月:5对:
第六个月:8对;
……
我之前做这道题的时候,觉得思路很简单,就是从第三个月起,求每个月的兔子数时,只要把这个月的前两个月总数相加。
这是我之前的代码,用f1和f2表示月。:
#include<stdio.h>
int main()
{
int f1,f2;
int month,ct;
printf("请输入月份:");
scanf("%d",&month);
if(month<=2)
printf("两只。\n");
if (month > 2)
{
f1 = f2 = 1;
ct = 0;
while(ct < month -2){
f1 = f1+f2;
ct += 1;
f2 = f1+f2;
ct += 1;
}
if (month %2 == 0){
printf("第 %d 个月的兔子对数为:%d.\n",month,f2);
}
if (month %2 == 1){
printf("第 %d 个月的兔子对数为:%d.\n",month,f1);
}
}
return 0;
}
其实这个代码离递归就差一步,很接近了。但是我当时完全没有想到。
这是我重新修改之后的代码:
#include<stdio.h>
long Fibonacci(n)
{
if (n > 2)
return Fibonacci(n-1)+Fibonacci(n-2);
else
return 1;
}
int main()
{
long num;
int month;
printf("请输入月份:");
scanf("%d",&month);
num = Fibonacci(month);
printf("这个月的兔子对数为%d.\n",num);
return 0;
}
关于“C语言如何实现斐波那契数列”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C语言如何实现斐波那契数列”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:http://www.cnblogs.com/savorboard/p/netcore-npoi.html