(C语言)斐波那契数列(递归求解)
#include <stdio.h>
int fun(int n){
if(n<=2){
return 1;
}
return fun(n-2)+fun(n-1);
}
int main(){
printf("请输入要求的项数(0是第一项,1就是第二项,以此类推)(大于0):\n");
int a=0;
if(scanf("%d",&a)!=1 && a<0){
printf("输入不合法,请输入大于0的整数\n");
return 1;
}
int x=fun(a);
printf("斐波那契数列第%d项是%d",a+1,x);
return 0;
}
斐波那契数列是数学中很经典的数列,如下:
他的树状结构是:
F(4)
/ \
F(3) F(2)
/ \ / \
F(2) F(1) F(1) F(0)
/ \
F(1) F(0)
这样就很简单了,定义递归就行了:
让n<=2的时f(n)=1;然后第三项开始调用递归即可
递归过程不懂的小伙伴可以看:
(C语言)递归函数教学(C语言教学)-CSDN博客
部分运行结果如下:
请输入要求的项数(0是第一项,1就是第二项,以此类推)(大于0):
10
斐波那契数列第11项是55
请按任意键继续. . .
注:该代码是本人自己所写,可能不够好,不够简便,欢迎大家指出我的不足之处。如果遇见看不懂的地方,可以在评论区打出来,进行讨论,或者联系我。上述内容全是我自己理解的,如果你有别的想法,或者认为我的理解不对,欢迎指出!!!如果可以,可以点一个免费的赞支持一下吗?谢谢各位彦祖亦菲!!!!!