这题找到递推式就好写了,递推式大致是:
f=n (n<=4)
f=f(n-1)+f(n-3) (n>4)
其实这题的题意,我觉得是有很大的问题的,它前后说的每年年初的意思都不一样,敬请参考,我发现这样可以符合答案。
第一年之后一个小母牛,第二年有了小母牛和她的孩子,接着三年四年都出生了两个孩子,第五年的时候,第二年出生的孩子按照虚岁计算,即出生也算一岁,这时候整好是第四个年头,然后年初的时候生,然后就在第五年生了,而不是在第六年生,搞不懂,出题人怎么想的?
#include <cstdio>
int dfs(int n)
{
if (n<=4)
return n;
else
return dfs(n-1)+dfs(n-3);
}
int main()
{
int n;
while (scanf("%d",&n)&&n) {
printf("%d
", dfs(n));
}
return 0;
}