#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貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
你這程序是用來(lái)計(jì)算菲波那契數(shù)列第n項(xiàng)值的。不過(guò)你的主程序指定只要輸出第2項(xiàng),導(dǎo)致程序就只輸出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;
}
添加回答
舉報(bào)
0/150
提交
取消