一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
坑爹的兔子

斐波那契数列的迭代实现

我们都知道兔子繁殖能力是惊人的,如下图:

 我们可以用数学函数来定义:

 课间练习:假设我们需要求出经历了20个月后,总共有多少对小兔崽子?(迭代 vs 递归)

 1 def fab(n):
 2     n1 = 1
 3     n2 = 1
 4     n3 = 1
 5 
 6     if n < 1:
 7         print('输入有误!')
 8         return -1
 9 
10     while (n-2) > 0:
11         n3 = n2 + n1
12         n1 = n2
13         n2 = n3
14         n -= 1
15     
16     return n3
17 
18 result = fab(20)
19 if result != -1:
20     print('总共有%d对小兔崽子诞生!' % result)

 斐波那契数列的递归实现

 递归实现(递归计算时间将拉长)

 1 def fab(n):
 2     if n < 1:
 3         print('输入有误!')
 4         return -1
 5 
 6     if n == 1 or n == 2:
 7         return 1
 8     else:
 9         return fab(n-1) + fab(n-2)
10 
11 result = fab(35)
12 if result != -1:
13     print('总共有%d对小兔崽子诞生!' % result)

 注:迭代计算时间远比递归少,因为递归要循环出入栈

posted on 2023-08-23 09:49  一杯清酒邀明月  阅读(23)  评论(0编辑  收藏  举报