?? 例6.7.txt
字號:
例6.7求fibonacci數列40個數。這個數列有如下特點:第1,2兩個數為1,1。從第3個數開始,該數是其前面兩個數之和。即:
f1=1 (n=1)
f2=1 (n=2)
fn=fn-1+fn-2 (n≥3)
這是一個有趣的古典數學問題:有一對兔子,從出生后第3個月起每個月都生一對兔子。小兔子長到第3個月后每個月又生一對兔子。假設所有兔子都不死,問每個月的兔子總數為多少?
解此題的算法如圖6.13所示。
程序如下:
main()
{
long int f1,f2;
int i;
f1=1;f2=1;
for(i=1; i<=20; i++)
{
printf("%12ld %12ld ",f1,f2);
if(i%2==0) printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
運行結果為:
1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
1597 2584 4181 6765
10946 17711 28657 46368
75025 121393 196418 317811
514229 832040 1346269 2178309
3524578 57022887 9227465 14930352
24157817 39088169 63245986 102334155
程序中在printf函數中輸出格式符用“%12 ld”,而不是用“%12d”,這是由于在第23個數之后,整數值已超過整數最大值32767,因此必須用“%ld”格式輸出。if語句的作用是使輸出4個數后換行。i是循環變量,當i為偶數時換行,而i每增值1,就要計算和輸出2個數(f1,f2),因此i每隔2換一次行相當于每輸出4個數后換行輸出。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -