零基础入门学习Python(23)--递归:这帮小兔崽子
知识点
我们都知道兔子繁殖能力是惊人的,如下图:
我们可以用数学函数来定义:
假设我们需要求出经历了20个月后,总共有多少对小兔崽子?
- 迭代实现
def fab(n):
n1 = 1
n2 = 1
n3 = 1
if n < 1:
print('输入有误!')
return -1
while (n - 2) > 0:
n3 = n2 + n1
n1 = n2
n2 = n3
n -= 1
return n3
result = fab(20)
if result != -1:
print('总共有%d对小兔崽子' % result)
>>>
================= RESTART: C:\Users\ThinkPad\Desktop\test.py =================
总共有6765对小兔崽子
>>>
- 递归实现
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)
================= RESTART: C:\Users\ThinkPad\Desktop\test.py =================
总共有6765对小兔崽子!