这次是第二次比较大的training,明天下午更新完后周末我会打一下去年新生杯的题
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2018
思路:
直接模拟,数组下标是牛的岁数(>=4岁的都放在a[4]),循环计算输出即可
源代码:
#include <cstdio> //A #include <string> #include <cstring> int n=0,ans=0; int a[5]={}; void count() { for (int i=0;i<=4;i++) a[i]=0; a[4]=1; for (int year=2;year<=n;year++) { a[4]+=a[3]; a[3]=a[2]; a[2]=a[1]; a[1]=a[4]; } } int main() { scanf("%d",&n); while (n!=0) { ans=0; count(); ans=a[1]+a[2]+a[3]+a[4]; printf("%d\n",ans); scanf("%d",&n); } return 0; }