斐波那契数列的几种算法
- 普通的循环
# -*- coding: utf-8 -*-
def fib(n):
lst = []
m, a, b = 0, 0, 1
for m in range(n):
lst.append(a)
a, b = b, a + b
return lst
if __name__ == "__main__":
n = int(input('Please input n > '))
print(fib(n))- 高效的生成器
def fib(n):
m, a, b = 0, 0, 1
for m in range(n):
yield a
a, b = b, a + b
if __name__ == '__main__':
lst = []
n = int(input('Please input n > '))
for i in fib(n):
lst.append(i)
print(lst)------分割线------
def fib(n):
if n <= 1:
return (n, 0)
else:
(a, b) = fib(n-1)
return (a+b, a)