问题描述
一只刚出生的奶牛,4年生1只奶牛,以后每一年生1只。现在给你一只刚出生的奶牛,求20年后有多少奶牛。
问题分析
本题是一个理想化的递归模型,在这20年中奶牛没有生老病死,并且全部都是具有正常生孕能力的母牛。大于等于四岁的奶牛会不间断的每年生一个小牛,小牛长到大于等于四岁也是如此,递归模型建立!
代码如下
#include<stdio.h>
int sumcow(int years);
int main()
{
int iyear;
printf("请输入年数:");
scanf("%d",&iyear);
printf("\n");
printf("奶牛总数是%d",sumcow(iyear));
return 0;
}
int sumcow(int years)
{
int i;
int scow=1; //奶牛总数
for(i=1;i<=years;i++)
{
if(i>=4) //四年后数量开始增加
{
if(years-i>3)//第二个四年
{
scow+=sumcow(years-i);//最关键的递归
}
else
{
scow++;
}
}
}
return scow;
}
运行结果如下