斐波那契數(shù)列
費波那契數(shù)列由 0 和 1 開始冗恨,之后的費波那契系數(shù)就是由之前的兩數(shù)相加而得出靡狞。
特別指出:0 不是第一項,而是第零項斋日。
python 實現(xiàn)
- 第一個版本饰恕,輸入初始值挠羔,打印特定項數(shù)的斐波那契數(shù)列
def fibonacci(a, b, num):
if num == 0:
return str(a) + " "
if num == 1:
return str(a) + " " + str(b) + " "
if num % 2 == 1:
return str(a) + " " + fibonacci(b, a+b, num-1)
if num % 2 == 0:
return str(a) + " " + str(b) + " " + fibonacci(b+a, a+b+b, num-2)
if __name__ == '__main__':
print fibonacci(0, 1, 9)
輸出結(jié)果:
0 1 1 2 3 5 8 13 21 34
這里讀者可能會覺得奇怪,參數(shù)不是 9 嗎埋嵌,怎么有 10 項呢破加?
前面已經(jīng)特別指出,0 不是第一項雹嗦,而是第 0 項范舀。
- 第二個版本,打印特定項數(shù)的斐波那契數(shù)列
def fibonacci_v2(num):
a, b = 0, 1
if num == a:
print a,
elif num == b:
print a, b,
count = 0
while num > count:
print a, b,
a, b = a+b, a+b+b
count += 2
if num % 2 == 0:
print a
if __name__ == '__main__':
fibonacci_v1(10)
輸出結(jié)果:
0 1 1 2 3 5 8 13 21 34 55
- 第三個版本了罪,打印特定項的值
def fibonacci_v3(num):
if num == 0:
return 0
if num == 1:
return 1
return fibonacci_v2(num-1) + fibonacci_v2(num-2)
if __name__ == '__main__':
print fibonacci_v2(7)
輸出結(jié)果:
13
感謝閱讀锭环!
如果文章中有錯誤或存在誤解的地方,麻煩多加指教捶惜,無比感謝田藐!
科技是一把雙刃劍,能讓世界終結(jié)吱七,也能讓世界更美好汽久。
The End.