本文主要是介绍Python实现:(斐波那契数列,递归)有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
分析:
- 这个月兔子的总数,就是上个月的兔子总数加上新生出来的兔子:f(n) = f(n-1) + x
- 求这个月新生出来多少兔子,就是求这个月已经有生育能力的兔子是多少
- 这个月已经有生育能力的兔子,就是上上个月所有的兔子:x = f(n-2)
- 递推式:f(n) = f(n-1) + f(n-2),这是一个典型的斐波那契数列问题
1、循环结构(结构不清晰,可读性差;但非递归,时间开销小)
m1 = 1 #index=0
m2 = 1 #index=1
count = 2 #index=2,所以count=2,当然count和month配套使用
month = 10
if month == 1:print(m1)
else:print(f'{m1} {m2}',end=' ')while count < month: #如果count=3,则count <= monthm3 = m1 + m2print(m3,end=' ')m1 = m2m2 = m3 #循环结构count += 1
上面代码封装成类:
class Rabbit_class:def __init__(self,month):self.m1 = 1self.m2 = 1self.count = 2self.month = monthdef rabbit_num(self):
这篇关于Python实现:(斐波那契数列,递归)有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!