編寫一個(gè)遞歸函數(shù),用于計(jì)算斐波那契數(shù)列中的第n項(xiàng)值,并在主函數(shù)中調(diào)用該函數(shù)輸出斐波那契數(shù)列的前15項(xiàng)。
斐波那契數(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實(shí)現(xiàn):
# 遞歸函數(shù),計(jì)算斐波那契數(shù)列中的第n項(xiàng)值
def fibonacci(n):
if n <= 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 主函數(shù),輸出斐波那契數(shù)列的前15項(xiàng)
if __name__ == '__main__':
for i in range(1, 16):
print(fibonacci(i), end=' ')
C語(yǔ)言實(shí)現(xiàn):
在C語(yǔ)言中,遞歸是一種函數(shù)調(diào)用自身的技術(shù)。它可以使解決問題的算法更加簡(jiǎn)單和優(yōu)雅。
遞歸函數(shù)包括兩個(gè)部分:遞歸基或終止條件和遞歸部分。遞歸基是指一個(gè)最簡(jiǎn)單的情況,不再需要調(diào)用自身即可返回結(jié)果。遞歸部分是指將問題分解為更小的相同問題的步驟,每次調(diào)用自身時(shí)問題規(guī)模都會(huì)減小。
在編寫遞歸函數(shù)時(shí),需要注意避免無限循環(huán)和過多的遞歸,否則會(huì)導(dǎo)致程序崩潰或棧溢出的錯(cuò)誤。
以下是一個(gè)計(jì)算階乘的遞歸函數(shù)示例:
int factorial(int n){
if(n == 0)
return 1; //遞歸基
else
return n * factorial(n-1); //遞歸部分
}
在這個(gè)函數(shù)中,如果n等于0,則直接返回1作為遞歸基;否則,將n乘以小于n的階乘,直到達(dá)到遞歸基條件。
#include < stdio.h >
// 遞歸函數(shù),計(jì)算斐波那契數(shù)列中的第n項(xiàng)值
int fibonacci(int n) {
if (n <= 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
// 主函數(shù),輸出斐波那契數(shù)列的前15項(xiàng)
int main() {
int i;
for (i = 1; i <= 15; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137738 -
python
+關(guān)注
關(guān)注
56文章
4807瀏覽量
85040
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【求教貼】用MSI chips設(shè)計(jì)一個(gè)fibonacci 計(jì)數(shù)器
《C Primer Plus》讀書筆記——遞歸
求助,ARM DS-5課程作業(yè)不會(huì)寫,誰能代寫,500元
任務(wù)和函數(shù)的區(qū)別?
遞歸指的是在函數(shù)的定義中使用函數(shù)自身的方法
探究SMT對(duì)計(jì)算密集型workload的效果
![探究SMT對(duì)<b class='flag-5'>計(jì)算</b>密集型workload的效果](https://file.elecfans.com/web2/M00/1A/49/pYYBAGF6Vp6ASA3yAAAKO54ye_A779.png)
Verilog數(shù)字系統(tǒng)設(shè)計(jì)——任務(wù)和函數(shù)一(斐波那契數(shù)列)
![Verilog數(shù)字系統(tǒng)設(shè)計(jì)——任務(wù)和<b class='flag-5'>函數(shù)</b>一(<b class='flag-5'>斐</b><b class='flag-5'>波</b><b class='flag-5'>那</b><b class='flag-5'>契</b><b class='flag-5'>數(shù)列</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論