編寫一個遞歸函數(shù),用于計算斐波那契數(shù)列中的第n項值,并在主函數(shù)中調(diào)用該函數(shù)輸出斐波那契數(shù)列的前15項。
斐波那契數(shù)列:1,1,2,3,5,8,13,21,……
可表示為:f(n)=1,當(dāng)n<=2;f(n)=f(n-1)+f(n-2),當(dāng)n>2;
Python實現(xiàn):
# 遞歸函數(shù),計算斐波那契數(shù)列中的第n項值
def fibonacci(n):
if n <= 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 主函數(shù),輸出斐波那契數(shù)列的前15項
if __name__ == '__main__':
for i in range(1, 16):
print(fibonacci(i), end=' ')
C語言實現(xiàn):
在C語言中,遞歸是一種函數(shù)調(diào)用自身的技術(shù)。它可以使解決問題的算法更加簡單和優(yōu)雅。
遞歸函數(shù)包括兩個部分:遞歸基或終止條件和遞歸部分。遞歸基是指一個最簡單的情況,不再需要調(diào)用自身即可返回結(jié)果。遞歸部分是指將問題分解為更小的相同問題的步驟,每次調(diào)用自身時問題規(guī)模都會減小。
在編寫遞歸函數(shù)時,需要注意避免無限循環(huán)和過多的遞歸,否則會導(dǎo)致程序崩潰或棧溢出的錯誤。
以下是一個計算階乘的遞歸函數(shù)示例:
int factorial(int n){
if(n == 0)
return 1; //遞歸基
else
return n * factorial(n-1); //遞歸部分
}
在這個函數(shù)中,如果n等于0,則直接返回1作為遞歸基;否則,將n乘以小于n的階乘,直到達(dá)到遞歸基條件。
#include < stdio.h >
// 遞歸函數(shù),計算斐波那契數(shù)列中的第n項值
int fibonacci(int n) {
if (n <= 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
// 主函數(shù),輸出斐波那契數(shù)列的前15項
int main() {
int i;
for (i = 1; i <= 15; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136863 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84695
發(fā)布評論請先 登錄
相關(guān)推薦
評論