斐波那契數列是經典的遞歸數列,規律為:0、1、1、2、3、5、8、13、21……從第三項開始,每一項等於前兩項之和。本文通過一段C語言代碼,詳細講解如何利用循環輸出前40項,並逐行分析運算邏輯。
#include <stdio.h>
#include <conio.h>
int main() {
long fib[41] = {0, 1}; // 定義長整型數組,預設前兩項為0和1
int i;
// 從下標2開始計算(即第3項)
for (i = 2; i < 41; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
// 輸出第1項到第40項
for (i = 1; i < 41; i++) {
printf("F%d==%ld\n", i, fib[i]);
}
getch();
return 0;
}
long fib[41] = {0, 1}; 宣告一個長度為41的長整型數組,並將前兩個元素(下標0和1)初始化為0和1。這對應數列的第1項和第2項。for (i=2; i<41; i++) fib[i] = fib[i-1] + fib[i-2]; 從下標2(第3項)開始,每一項都等於前兩項之和。循環條件i<41確保計算到下標40(第41項),但輸出時只打印到第40項。printf("F%d==%ld\n", i, fib[i])格式化輸出,注意%ld對應long類型。i<41(即下標1到40)。long類型可存儲較大數值,第40項為102,334,155,仍在long範圍內。getch()用於控制台暫停,屬於非標準庫函數(conio.h),跨平台時可替換為getchar()。若需求變更為輸出前N項,只需將數組大小、循環上限改為N+1即可。此外,遞歸實現雖直觀但效率極低(重複計算),循環(迭代)法是工程首選。進階可用矩陣快速冪或通項公式優化至O(log N)。