題目是這樣的,課堂上老師已經帶我們打出,但我不會分析這段代碼
代碼是這樣的,幫忙分析下
nt fibo(int n);
int main()
{
int i=0,fi,j=0;
for(i=0;i<30;i++)
{
fi=fibo(i+1);
printf("%d\t",fi);
j++;
if(j%5==0)
printf("\n");
}
return 0;
}
int fibo(int n)
{
int s=0;
if(n==1||n==2)
s=1;
else
s=fibo(n-1)+fibo(n-2);
return s;
}
int fibo(int n); //聲明fibo函數
int main() //實現主函數
{
int i=0,fi,j=0; //定義循環變量
for(i=0;i<30;i++) //循環30次,獲取fibo數的前30項
{
fi=fibo(i+1); //獲取每項的fibo數
printf("%d\t",fi); //輸出獲取的fibo數
j++; //行控制個數疊加
if(j%5==0) //當此行輸入5項fibo時
printf("\n"); //進行換行
}
return 0; //執行結束
}
int fibo(int n) //fibo函數定義
{
int s=0; //定義變量
if(n==1||n==2) //當當前fibo項為第一項或第二項時
s=1; //返回1
else
s=fibo(n-1)+fibo(n-2); //當當前fibo項為非第一項或第二項時,遞歸獲取當前項
return s; //返回當前項
}