#include<stdio.h>int foo(int n){int i;if(n<3)return 1;for(i=0;i<n;i++){printf("%d\n",foo(n-1)+foo(n-2)); return foo(n-1)+foo(n-2);}}int main(){ printf("foo;%d\n",foo(2));return 0;}
2 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
你这程序是用来计算菲波那契数列第n项值的。不过你的主程序指定只要输出第2项,导致程序就只输出1。
改了一下,你试一下:
#include<stdio.h>
int foo(int n){
int i;
if(n<3)
return 1;
for(i=0;i<n;i++){
return foo(n-1)+foo(n-2);
}
}
int main(){
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
printf("foo(%d)=%d\n",i,foo(i));
return 0;
}
添加回答
举报
0/150
提交
取消