题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2018
刚开始看到这道题时我很快就联想到 Fibonacci 数列,这也确实是该兔子生崽题的变形,区别在于隔几年生崽,同样的我列了一下: 一年 两年 三年 四年 五年 六年
成年母牛 1 1 1 1 2 3
小母牛 0 1 2 3 4 6
母牛总数 1 2 3 4 6 9
对于第n年母牛的总数Fn,显然等于Fn-1+Fn-3;
于是可写一个数组a[ ]来存储,并初始化前几项;
并用循环来填充到第N项的数据,最后按题目要求格式输出
我的答案:
#include "stdio.h"
void main()
{
intn,i; intf[55]={1,2,3};
while(scanf("%d",&n)!=EOF&&0<=n&&n<55)
{ if(n==0)break;
for(i=3;i<n;i++)
{ f[i]=f[i-1]+f[i-3];
}
printf("%d\n",f[n-1]);
}
}
若有其他想法,或者有什么建议,望不吝赐教。