Pyhton 兔子繁衍问题(后有递归求法)(设有一对新生的兔子从第4个月开始他们每个月月初都生一对新兔子, 新生的兔子从第4个月开始又每个月月初生一对兔子,求n个月后兔子的总对数)

本文探讨了一对新生兔子从第4个月开始每月繁殖一对新兔子的数学问题,与斐波那契数列有相似之处。通过递归方法解析n个月后兔子的总对数,强调了为何需要减1的原因,并鼓励读者分享不同见解和解决方案。
摘要由CSDN通过智能技术生成

设有一对新生的兔子从第3个月开始他们每个月月初都生一对新兔子,
新生的兔子从第3个月开始又每个月月初生一对兔子,
求n个月后兔子的总对数
这个和求第n个斐波那契数有着异曲同工之妙
为什么n要-1

  • 我们假设初始的这一对兔子是0个月
  • 过1个月长1个月,长了2个月后,第3个月月初,它才2个月吧,就可以生兔子了
  • 新生的一对兔子是月初出生的,所以过完那个月就一个月大了,再过1个月就可以生兔子了
  • 所以初始化的时候是没有一个月的兔子的,需要过一个月才有,所以我们就减少一次循环
    注意我这也只是推理,并没有去根据规律去做
def f(n):
    # 一个月的兔子
    a = 1
    # 二个月的兔子
    b = 0
    # 成年兔
    c = 0
    for i in range(n-1):
        # 过一个月新生的兔子数目应该等于上个月成年兔子的数目加上2个月大的兔子的数目
        # 注意刚生出来是月初,过完这个月就1个月大了,所以新生兔子就可以直接理解成是1个月大的兔子
        a,b,c = b+c,a,b+c
    print(a+b+c)

f(1)# 1
f(2)# 1
f(3)# 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值