有一母牛,到4岁可生育,每年生一头,所生均是同样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛?

在刚刚开始关于牛群问题,为了能更容易理解以及解决,我们可以利用递归的方法来解决这个问题;

不废话,直接上代码。

#include
using namespace std;
int niu(int year,int& num){	for(int i=1;i<=year;i++){if(i>=4&&i<15){num++;  //在绝育前的可生育的每一年都可以每年生一头母牛 niu(year-i+1,num);  //计算小牛生的牛数量 }if(i==20){  //当一头牛20岁时,则死亡 num--;}}return num;  //返回牛群的总数量
}int main(){int num=1  //初始只有一头牛int y;  cout<<"请输入一共有多少年:";cin>>y; cout<

在代码中我们可以知道,每递归一次,就可判断生下来的小牛是否可以生母牛,其递归中的 year-i+1 是小牛的年龄,有些人可能不知道未什么最后还要+1,这是因为当第一头牛生下的小母牛时,每过一年,小牛也要长一岁,例如七年后 大牛是七岁,小牛是四岁,它们会在同一年都生下一头牛。我也解释不清楚。....呜呜呜... 就比如当year=7时,7-i(i=4)=3,递归的话小于4,所以要在后面+1。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部