一、斐波那契数列
首先,我们来了解一下斐波那契,斐波那契的发明者是意大利数学家昂纳多·斐波那契
我们拿兔子繁殖的例子来学习斐波那契~
数据统计表如下图所示:
迭代实现:
def fab(n):
n1 = 1
n2 = 1
n3 = 1
if n < 1:
print('输入有误!')
return -1
while (n-2) > 0:
n3 = n1 + n2
n1=n2
n2=n3
n -= 1
return n3
result = fab(35)
if result != -1:
print('总共有%d对小兔崽子诞生!'% result)
递归实现:
def fab(n):
if n < 1:
print('输入有误!')
return -1
if n == 1 or n == 2:
return -1
else:
return fab(n-1) + fab(n-2)
result = fab(20)
if result != -1:
print('总共有%d队小兔崽子诞生!'% result)
来看一下上面递归实现的原理:
注意一点,递归如果使用不当,效率会很低。我们将上面例子中的fab()参数变大一点,会发现:用迭代代码实现基本是毫秒级的,而用递归实现就要考验计算机的CPU能力了(N秒~N分钟不等),座椅不支持大家所有问题都是用递归来解决