猿问

请教下在for循环几次?

#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;

}

DIEA
浏览 109回答 2
2回答

慕码人8056858

最后输入1?

回首忆惘然

你这程序是用来计算菲波那契数列第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;}
随时随地看视频慕课网APP
我要回答