python用遞歸函數求1+2+3+4+5的值的方法:
在三水等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供網站設計、網站制作 網站設計制作按需網站建設,公司網站建設,企業網站建設,品牌網站制作,全網營銷推廣,成都外貿網站建設,三水網站建設費用合理。
1、寫出臨界條件
2、找這一次和上一次的關系
3、假設當前函數已經能用,調用自身計算上一次的結果,再求出本次的結果
代碼實現如下:
def common_data(a, b, sub_common):
if sub_common == 1:
return sub_common
else:
k1 = a % sub_common
k2 = b % sub_common
if k1 == k2 == 0:
return sub_common
else:
sub_common = sub_common - 1
return common_data(a, b, sub_common)
上面就是定義了一個遞歸函數求最大公約數
如
a = 16
b = 12
c = common_data(16,12,12) # 前兩個參數就是需要求最大公約數的兩個數,第三個參數就是那兩個數中較小的那個數, 返回值就是最大公約數
首先我們要了解一下什么是遞歸。
遞歸法,遞歸法就是利用上一個或者上幾個狀態來求取當前狀態的值(個人看法)。也可以說成函數自己調用自己的一種解決問題的策略。因此遞歸法通常是依托函數來實現的,遞歸函數總是會有一個出口,我們在解決遞歸問題時,只需要找出遞歸的關系式以及遞歸函數的出口(這兩個可以說是遞歸函數的核心了)。下面我將在這里舉求斐波那契值的例子帶領著大家具體的實踐一下遞歸法。
很顯然遞歸函數的遞推式是:fib(n) = fib(n-1)+fib(n-2)。
遞歸函數的出口是當n為1時返回1,當n為0時返回0。
最后遞歸函數的核心代碼就可以寫出了:
然后總的代碼就是:
具體思路如下:
語句 return fib(n-1)+fib(n-2)的意思就是向前求斐波那契值,直到n-1=1,n-2=0
因為只有第1個和第0個斐波那契值是確定的
例:
當n=3時
第一次調用函數fib會執行第三條語句(因為n1)這樣求回返回fib(2)+fib(1)
第二次調用函數時,因為21所有會返回fib(1)+fib(0);因為1不大于1,所以調用函數時
會執行第二條語句返回1值。
第三次調用函數,會執行第一和第二條語句,依次返回0和1從而求得fib(2)
fib(3)=fib(2)+fib(1)
fib(2)=fib(1)+fib(0)
即fib(3)=fib(1)+fib(0)+fib(1)=2*fib(1)+fib(0)
def Sum(m): #函數返回兩個值:遞歸次數,所求的值 if m==1:return 1,m return 1+Sum(m-1)[0],m+Sum(m-1)[1]cishu=Sum(10)[0] print cishu def Sum(m,n=1): ... if m==1:return n,m ... return n,m+Sum(m-1,n+1)[1] print Sum(10)[0] 10 print Sum(5)[0] 5
新聞標題:Python遞歸函數求 Python遞歸函數求斐波那契數列
瀏覽地址:http://vcdvsql.cn/article10/hpgpdo.html
成都網站建設公司_創新互聯,為您提供云服務器、靜態網站、軟件開發、搜索引擎優化、、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯