斐波那契数列:1 1 2 3 5 8 13 21 ……
使用迭代实现,仅仅使用3个变量
def fab(n):
n1 = 1
n2 = 2
n3 = 1
#错误
if n < 1:
return -1
while n > 2:
n3 = n1 + n2
n1 = n2
n2 = n3
n -= 1
return n3
使用递归(分治思想)实现,递归用栈实现,贼消耗内存,当n贼大的时候,电脑真的累!效率低,慎用!!!
def fab():
if n < 1:
retrun -1
if n == 1 or n == 2:
return 1
else:
retrun fab(n-1) + fab(n-2)
return n3