奶牛产子问题
奶牛第1次产子,间隔时间为3年,其余每隔2年产子一次,问40年后总多少牛?
个人写了一个算法,如果有问题请指正
#include "stdafx.h"
int year2CreateSun(int year_n);
int OneMileCreateSun(int year_n);
int MCSun(int year_n);
static int total=0;
int main(int argc, char* argv[])
{
int year =40;
MCSun(year);
printf("year =%d %d/n",year,total+1); //加1是把本来的第一头牛加进去
return 0;
}
int year2CreateSun(int year_n)
{
if ( year_n >= 2 )
{
int t= year_n / 2;
return t;
}
else
return 0;
}
int OneMileCreateSun(int year_n)
{
int t =0;
int t2 =0;
if ( year_n >= 3 )
{
t2 = year2CreateSun(year_n -3);
t = t2 + 1;//加1表示隔三年第1次产子
}
else
return 0;
return t;
}
int MCSun(int year)
{
int t =0;
t = OneMileCreateSun(year);
total = total + t;
int n=0;
int m=0;
if ( year >= 3 )
{
n = (year-3) / 2 + 1;
}
else
return 0;
for (int i=0; i< n; i++)
{
//计算年
m =year - 3 - 2 * i;
//递归调用
MCSun(m);
}
return 0;
}
运行结果:
year =40 55404