裴波那契数列

def fib(max_num):
n, a, b = 0, 0, 1
while n < max_num:
print(b) # 打印出来的就是裴波那契数列,从第三项开始,每一项都等于前两项之和
a, b = b, a+b
n = n + 1
return 'done'
fib(7)
# 0,0,1 # 第一次没循环时默认值n=0,a=0,b=1
# 1,1,1 # 第一次循环后n=1,a=1,b=1
# 2,1,2 # 第二次循环后n=2,a=1,b=2
# 3,2,3 # 第三次循环后n=3,a=2,b=3
# 4,3,5 # 第四次循环后n=4,a=3,b=5
# 5,5,8 # 第五次循环后n=5,a=5,b=8
# 6,8,13# 第六次循环后n=6,a=8,b=13 # 第七次循环不打印,只打印到13

# 利用循环求裴波那契数列的和
def fib(n):
n1 = 1
n2 = 1
n3 = 1
if n < 1:
print('输入有误!')
return -1
elif n == 1 or n == 2:
return 1
while n > 2:
n1 = n2
n2 = n3
n3 = n1 + n2
n = n - 1
return n3
res = fib(20)
if res != -1:
print('总共有%d只小兔崽子诞生!' % res)

# 利用递归求裴波那契数列的和
def fib(n):
if n < 1:
print('输入有误!')
return -1
elif n == 1 or n == 2:
return 1
else:
return fib(n - 1) + fib(n - 2)
res = fib(20)
if res != -1:
print('总共有%d只小兔崽子诞生!' % res)
posted @ 2018-03-30 11:20  laosun0204  阅读(221)  评论(0编辑  收藏  举报