JAVA经典兔子问题

本文讨论了一个经典的兔子繁殖问题,它涉及到斐波那契数列。作者提出了一种不使用递归或斐波那契数列的解决方案,通过跟踪不同月份的兔子数量来解决这个问题。文章中还提到了对兔子生长周期的理解疑问,并邀请读者进行讨论。

有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子,假如兔子都不死,问M个月时兔子的数量。

很经典的斐波那契数列问题。 记得第一次看到这道题是在一次比赛中,当时并不知道斐波那契数列,但是列出来几个月的兔子数后看到了这个规律,按照这个规律写出来的代码没有通过测试。

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(≥ 2,∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。

很长一段时间没有看过这道题了,这次偶然做到这道题,我们试试不用递归不用斐波那契数列,从另一个角度来解决这个问题。

nq3为本月可以生兔子的,有老兔子和在本月才到3月的兔子,此兔子不会清零,只会一直增加。

nq2为本月到2月的兔子,由于有兔子去了3月,需清零,再加上刚到2月的兔子。

nq1为本月刚出生的兔子,同nq2,有兔子去了2月,清零,再加上nq3生的兔子。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值