天天看點

SCUT Training 20170920 Problem A

這次是第二次比較大的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;
}