編寫一個遞歸函數,用于計算斐波那契數列中的第n項值,并在主函數中調用該函數輸出斐波那契數列的前15項。
斐波那契數列:1,1,2,3,5,8,13,21,……
可表示為:f(n)=1,當n<=2;f(n)=f(n-1)+f(n-2),當n>2;
Python實現:
# 遞歸函數,計算斐波那契數列中的第n項值
def fibonacci(n):
if n <= 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 主函數,輸出斐波那契數列的前15項
if __name__ == '__main__':
for i in range(1, 16):
print(fibonacci(i), end=' ')
C語言實現:
在C語言中,遞歸是一種函數調用自身的技術。它可以使解決問題的算法更加簡單和優(yōu)雅。
遞歸函數包括兩個部分:遞歸基或終止條件和遞歸部分。遞歸基是指一個最簡單的情況,不再需要調用自身即可返回結果。遞歸部分是指將問題分解為更小的相同問題的步驟,每次調用自身時問題規(guī)模都會減小。
在編寫遞歸函數時,需要注意避免無限循環(huán)和過多的遞歸,否則會導致程序崩潰或棧溢出的錯誤。
以下是一個計算階乘的遞歸函數示例:
int factorial(int n){
if(n == 0)
return 1; //遞歸基
else
return n * factorial(n-1); //遞歸部分
}
在這個函數中,如果n等于0,則直接返回1作為遞歸基;否則,將n乘以小于n的階乘,直到達到遞歸基條件。
#include < stdio.h >
// 遞歸函數,計算斐波那契數列中的第n項值
int fibonacci(int n) {
if (n <= 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
// 主函數,輸出斐波那契數列的前15項
int main() {
int i;
for (i = 1; i <= 15; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
-
C語言
+關注
關注
180文章
7632瀏覽量
141551 -
python
+關注
關注
56文章
4827瀏覽量
86667
發(fā)布評論請先 登錄
【求教貼】用MSI chips設計一個fibonacci 計數器
求助,ARM DS-5課程作業(yè)不會寫,誰能代寫,500元
任務和函數的區(qū)別?
遞歸指的是在函數的定義中使用函數自身的方法
Verilog數字系統設計——任務和函數一(斐波那契數列)

評論