#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
提交
取消