python 迭代法和遞迴 實現斐波那契演算法

2021-08-30 11:18:14 字數 717 閱讀 3089

def fab(n):             #宣告函式

n1 = 1

n2 = 1

n3 = 1

if n < 1:

return -1

while (n-2) > 0: #如果n給的值減去2大於0開始迴圈

n3 = n2 + n1 #n3=n2+n1

n1 = n2 #重新給賦值將n2 賦值給n1

n2 = n3 #重新賦值將上面n3 賦值給n3

n -= 1 #如果n的值是20的話每次減一。

return n3 #返回n3的值

sam = fab(12)

if sam != -1:

print('總共有%d小兔崽子' % sam)

#遞迴方式實現

#有點**簡練,易於理解,缺點執行速度慢。

def fab(n):

if n < 0 :

return -1

if n == 1 or n == 2 :

return 1

else:

return fab(n-1) + fab(n-2)

max = fab(20)

if max != -1:

print('總共有%d小兔崽子' % max)

快速冪 迭代法和遞迴法 python實現

迭代法 def quick power x,n res 1while n 0 如果冪為奇數,把x記錄下來,儲存在res中 if n 2 1 res x 如果冪為偶數 則不記錄,只是處理x,n x x n 1 return res遞迴法 def quick power x,n 特殊情況 if n 0 ...

子集 迭代法和遞迴法

給你乙個整數陣列nums,返回該陣列所有可能的子集 冪集 解集不能包含重複的子集。示例 1 輸入 nums 1,2,3 輸出 1 2 1,2 3 1,3 2,3 1,2,3 示例 2 輸入 nums 0 輸出 0 class solution ans.add new arraylist t retu...

python實現牛頓法 牛頓迭代法Python實現

例1 給定方程 f x x 2 sin x 1 0 判別該方程有幾個實根,並用牛頓法求出方程所有實根,精確到 10 解 利用畫圖法觀察根的所在區間為 2,1 和 0,1 其中藍色為 y f x 的曲線,橘黃色的直線是 y 0 畫圖 import numpy as np import matplotl...