0:n3=n2+n1#第三項為前兩項和n1=n2#計算完,整體后移,準備計算下一項n2=n3n-=1returnn3a=int(input('請輸入要計算的斐波那契項數:'))result=fab(a)print('第%d項斐波那契數為%" />

黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

python學習031-----python之遞歸(二):斐波那契數列的實現

系統 1945 0

斐波那契數列:
1 ? ? 2 ? ? 3 ? ? 4 ? ? 5 ? ? 6 ? ? 7 ? ? 8 ? ? 9 ? ? 10? ?...
1 ? ? 1 ? ? 2 ? ? 3 ? ? 5 ? ? 8 ? ?13 ? 21 ? 34 ? ?55? ?...

1.用迭代實現斐波那契數列(非遞歸方法)

            
              def fab(n): ? 
?? ?n1 = 1 ? ? ?
?? ?n2 = 1 ? ? ?
?? ?n3 = 1 ? ? 

?? ?if n < 1: ? 
?? ??? ?print('輸入有誤!')
?? ?
?? ?while (n-2) > 0: ? ?
?? ??? ?n3 = n2 + n1 ? #第三項為前兩項和
?? ??? ?n1 = n2 ? ? ? ? ? ?#計算完,整體后移,準備計算下一項 ?
?? ??? ?n2 = n3 ? ? ? ? ? ?
?? ??? ?n -= 1 ? ? ? ? ? ? ?

?? ?return n3 ? ? ? ? ? ?

a = int(input('請輸入要計算的斐波那契項數:'))
result = fab(a)
print('第%d項斐波那契數為%d' % (a, result))
            
          

2.遞歸方法
?
原理:(樹形結構圖)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Fab(5)
? ? ? ? ? ? ? ? ? ? ? ? ? Fab(4) ? ? ? ? ? ? ? ? ? ? + ? ? ? ? ? ? ? ? ? ? Fab(3) ? ? ? ? ? ? ??
? ? ? ? ? ? ? Fab(3) ? ? + ? ? ?Fab(2) ? ? ? ? + ? ? ? ? ?Fab(2) ? ?+ ? ? ?Fab(1)
? ? ? Fab(2)+Fab(1)+Fab(1)+Fab(0) ?+ ?Fab(1)+Fab(0) ? ??
Fab(1)+Fab(0)

            
              def fab1(n):
?? ?if n < 1:
?? ??? ?print('輸入錯誤!')

?? ?if n == 1 or n == 2:
?? ??? ?return 1 ? ? ? ? ? ? ? #如果求的是第一或者第二項,直接結果為1
?? ?else:
?? ??? ?return fab1(n-1) + fab1(n-2)

a = int(input('請輸入要計算的斐波那契項數:'))
result = fab(a)
print('第%d項斐波那契數為%d' % (a, result))
            
          

經過比較,遞歸方法簡單,容易理解,但是會浪費大量的CPU資源,計算時間也比非遞歸方法長了相當多。非遞歸方法無非就是代碼稍微復雜一點點,但是計算時間卻很短,也幾乎不怎么占用CPU資源。這就是為什么不提倡使用遞歸方法的原因。
?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論