问题是:有一只奶牛,出生后第四年成熟,成熟后每年生一只奶牛,问20年后有多少只奶牛?
不考虑生老病死,不考虑生公牛。
这是我在网络上找到的解答
#include"stdio.h"
int fun(int year);
int main(void)
{
printf("%d",fun(20));
}
int fun(int year)
{
int i,sum=1;
for(i=1;i<=year;i++)
{
if(i>3)
{
if(year-i>3)
sum=sum+fun(year-i);
else
sum++;
}
}
return sum;
}
答案是345
刚开始,我一个一个的算,结果发现答案对不上,在第7年的时候出现了错误
这是我按自己想法写的代码
#include"stdio.h"
int fun(int y);
int main(void)
{printf("%d",fun(20));}
int fun(int y)
{if(y<4)
return 1;
return fun(y-1)+fun(y-3); //如果这里y-3换成y-4,答案和网上的一模一样
}
想请问我这里算得对不对,还有就是按照网上的方法,第七年的时候有5只,但是一年一年推,却有6只。
我的递推公式是f(n)=f(n-1)+f(n-3)