递归超时,用递推

zhangwch  •  1个月前


从第4年开始,每年的奶牛数量 = 上一年原本就活着的奶牛数量 + 新出生的奶牛数量,而新出生的奶牛数量 = 三年前的奶牛数量(因为三年前的奶牛到这时候肯定都能生一头)。

#include <iostream>
using namespace std;

int n;
long long f[66];

int main() {
    f[1] = 1, f[2] = 2, f[3] = 3;
    for (int i = 4; i <= 60; i++) {
        f[i] = f[i - 1] + f[i - 3];
    }
    
    int x;
    while (cin >> x) {
        cout << f[x] << endl;
    }
    return 0;
}

评论: