使用遞迴(recursion)方式撰寫計算斐波那契數列值的函式。在這個例子中,我們將使用 C 語言來實現這個功能。根據提示,斐波那契數列的定義如下:
F(0) = 0
F(1) = 0
當 n > 1 時,F(n) = F(n-1) + F(n-2)
使用遞迴方式撰寫斐波那契函式
c
複製程式碼
#include <stdio.h>
// 定義遞迴函式來計算斐波那契數列值
int fibonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 0;
} else if (n == 2) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int n;
// 輸入要計算的斐波那契數列的索引
printf("輸入一個非負整數 n:");
scanf("%d", &n);
// 計算並打印斐波那契數列值
printf("F(%d) = %d\n", n, fibonacci(n));
return 0;
}
說明
遞迴函式 fibonacci:
當 n 為 0 或 1 時,返回 0。
當 n 為 2 時,返回 1。
當 n 大於 2 時,返回 fibonacci(n-1) + fibonacci(n-2) 的值。
主函式 main:
要求用戶輸入一個非負整數 n。
調用 fibonacci 函式計算並打印斐波那契數列值。
執行範例
plaintext
複製程式碼
輸入一個非負整數 n:5
F(5) = 3
在這個範例中,當用戶輸入 5 時,程式會計算並打印斐波那契數列的第 5 項值,結果為 3。
注意事項
遞迴方式簡單直觀,但對於較大的 n 值,遞迴深度會非常大,計算效率不高。這是因為遞迴函式會重複計算許多中間值。可以考慮使用動態規劃或其他優化技術來提高效率。
如果需要處理更大的數值,應考慮優化算法,或者使用迭代方法來避免遞迴過深導致的效能問題。