斐波那契数列
费波那契数列由 0 和 1 开始,之后的费波那契系数就是由之前的两数相加而得出。
特别指出:0 不是第一项,而是第零项。
python 实现
- 第一个版本,输入初始值,打印特定项数的斐波那契数列
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)
输出结果:
0 1 1 2 3 5 8 13 21 34
这里读者可能会觉得奇怪,参数不是 9 吗,怎么有 10 项呢?
前面已经特别指出,0 不是第一项,而是第 0 项。
- 第二个版本,打印特定项数的斐波那契数列
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)
输出结果:
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)
输出结果:
13
感谢阅读!
如果文章中有错误或存在误解的地方,麻烦多加指教,无比感谢!
科技是一把双刃剑,能让世界终结,也能让世界更美好。
The End.