ACM(遞迴遞推—A)

???yyyy發表於2017-03-31

題目:有一頭母牛從第二年開始每年年初生一個小牛,小牛從第四年開始每年生一頭小牛,n年以後有多少頭牛。

解題思路:理清思路,列出前幾年牛的個數,然後找出其中的規律,前三年的時候只有一頭母牛能生小牛可以將前3年的單列出來,然後從第四年開始利用遞推來算第n年牛的數量。

細節處理:建立一個陣列a【100】利用遞推來求出牛的數量,然後用c【100】來存a【i】的值便於一起輸出。

程式碼:#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,i,j=0,c[100]={0},a[100]={1,1,2,3};
    while(cin>>n)
    {
       if(n==0)
            break;
            if(n<4)
                c[j]=a[n];
        if(n>=4)
            {for(i=4;i<=n;i++)
            a[i]=a[i-1]+a[i-3];
            c[j]=a[i-1];}
             j++;
}


        for(i=0;i<j;i++)
            cout<<c[i]<<endl;


        return 0;
}

感想:剛開始做的時候由於沒有理清之間的關係,想了好久也沒做對,後來發現列的時候寫錯了,在草紙上寫的時候應該把小牛的年齡寫上便於統計。

相關文章