【python基础】递归求斐波那契数列——小兔子生小兔子


最开始一对小兔子
小兔子成长到第三个月变成成熟兔子
成熟兔子每个月可以生一对小兔子

问第n个月有几只兔子?


1 1 2 3 5 8 13 21 34 55 89 144 ...... 斐波那契数列

观察发现:每相邻三个数之间的关系: 第三个数 = 前两个数之和

分析:
  求第n个月的兔子对数 = 第n-1个月兔子的对数 + 第n-2个月兔子对数
  第4个月 = 第3个月 + 第2个月 --> 2 + 1
  第3个月 = 第2个月 + 第1个月 --> 2
  第2个月 = 1
  第1个月 = 1

 1 # 求第n个月兔子的总对数
 2 def get_rabbit_count(n):
 3     if n == 1:
 4         return 1
 5     elif n == 2:
 6         return 1
 7     else:
 8         return get_rabbit_count(n-1) + get_rabbit_count(n-2)
 9 
10 print(get_rabbit_count(5))  # 5
11 print(get_rabbit_count(10))  # 55    

  

猜你喜欢

转载自www.cnblogs.com/Tree0108/p/12110053.html
今日推荐