W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
所謂遞歸其實就是函數本身調用函數,直到滿足指定條件之后一層層退出函數, 例如
從前有座山,山里有座廟,廟里有個老和尚,正在給小和尚講故事呢!故事是什么呢?“從前有座山,山里有座廟,廟里有個老和尚,正在給小和尚講故事呢!故事是什么呢?‘從前有座山,山里有座廟,廟里有個老和尚,正在給小和尚講故事呢!故事是什么呢?……’”
利用函數編寫一個斐波那契數列
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368
斐波那契數列就是前面給兩個數相加得到后面一個數,依次往后
代碼如下
#!/usr/bin/env python# _*_ coding: utf-8 _*_def Counter(n1, n2): if n1 > 10000: # 當要計算的值大于10000就退出 return print("Counter:", n1) # 輸出當前計算到那個值了 n3 = n1 + n2 # 第一個值加上第一個值等于第三個值 Counter(n2, n3) # 調用計數器函數,此時第一個值是調用函數傳過來的最后一個值,而第二個值是計算出來的第三個值Counter(0, 1) # 調用計數器函數
輸出結果
/usr/bin/python3.5 /home/ansheng/Documents/PycharmProjects/blogcodes/斐波那契.pyCounter: 0Counter: 1Counter: 1Counter: 2Counter: 3Counter: 5Counter: 8Counter: 13Counter: 21Counter: 34Counter: 55Counter: 89Counter: 144Counter: 233Counter: 377Counter: 610Counter: 987Counter: 1597Counter: 2584Counter: 4181Counter: 6765Process finished with exit code 0
利用遞歸獲取斐波那契數列中的第10個數,并將該值返回給調用者
代碼:
#!/usr/bin/env python# _*_ coding: utf-8 _*_def Counter(Index, Start, End): print("第%d次計算,第一個數字是%d,第二個數字是%d" % (Index, Start, End)) if Index == 10: # 如果要計算的值是10就退出 return Start N = Start + End # N等于第一個數加上第二個數 Number = Counter(Index + 1, End, N) # 繼續(xù)調用計數器函數,End相當與傳給函數的第一個數,N是傳給函數的第二個數 return Numberresult = Counter(1, 0, 1)print("得出的數字是:", result)
輸出結果
/usr/bin/python3.5 /home/ansheng/Documents/PycharmProjects/blogcodes/遞歸.py第1次計算,第一個數字是0,第二個數字是1第2次計算,第一個數字是1,第二個數字是1第3次計算,第一個數字是1,第二個數字是2第4次計算,第一個數字是2,第二個數字是3第5次計算,第一個數字是3,第二個數字是5第6次計算,第一個數字是5,第二個數字是8第7次計算,第一個數字是8,第二個數字是13第8次計算,第一個數字是13,第二個數字是21第9次計算,第一個數字是21,第二個數字是34第10次計算,第一個數字是34,第二個數字是55得出的數字是: 34Process finished with exit code 0
本文出自 “一盞燭光” 博客,謝絕轉載!
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: