1. 程式人生 > >杭電oj母牛的故事

杭電oj母牛的故事

這是一道杭電oj2018的題目,第一次做這種型別的題目,被嚇著了,但最後在提示下還是做出來了,哈哈,其實規律很簡單,當年數大於四時,其第n年的牛數就是前一年的數目加上前三年的牛的數目,因為前三年的牛都能夠生下一頭牛了在這裡插入圖片描述

#include <iostream>

using namespace std;

int main(void)
{
    int a[250];
    for (int i = 0; i < 4; i++) a[i] = i+1; //前四年的數目
    int n,sum; //n為年份
    while (cin >> n)
    {
        sum = 0;
        if (n == 0) break;
        else if (n <= 4)    cout << a[n-1] << "\n";
        else if (n > 4){
                for (int i = 5; i < n+1; i++)
            a[i-1] = a[i-2] + a[i-4];
            cout << a[n-1] << "\n";
        }
    }
    return 0;
}
//從大於第四年開始,第n年的數就是前一年的牛數加上前三年的牛數,因為前三年有多少頭牛就能在前一年的基礎上增加多少牛