OJ题解【1】:母牛的故事

本文通过建立递推关系和列举归纳两种方法,详细解析了一道经典的母牛繁殖问题。问题描述为:一头母牛每年年初生一头小母牛,每头小母牛从第四个年头开始每年年初也生一头小母牛。文章通过分析得出,第n年时母牛总数可通过递推公式Total(n)=Total(n-1)+Total(n-3)计算。
摘要由CSDN通过智能技术生成

题目

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

思路

分析的方法:建立递推关系

定义:Total(n) = Total(n-1) + Able(n)
即今年的种群总数等于去年总数加上今年新生育的数目,那么知道Able(n)就可以解出此题。

注意题目中说每头牛都是第4年生育,假设今年就是第4年,那么今年新生育的数目Able(n)其实都是4年前那帮牛生的,也就说4年前的那帮牛有多少,今年就会新增多少新牛,所以其实Able(n) = Total(n-3)
于是递推关系就出来了:Total(n) = Total(n-1) + Total(n-3)

注意前3年不能由上述公式递归得到,所以就直接列出前3年的数目就行。

经验的方法:列举并归纳

把第1年到第8年的种群数目列举出来,然后可以发现下列递推式成立:
Total(n) = Total(n-1) + Total(n-3)
然后联想到熟悉的斐波那契数列,于是驾轻就熟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值