试题C 数列求值


 答案:4659

#include 
using namespace std;

/*
  如果直接使用递归则会超时,算不出。
  (千万不要漏掉题目中给的任何一点信息)
  提示:千位不为0,可以只算前四位,后面就不管它,所以可以考虑÷10000取余
*/

int main() {
    int a = 1, b = 1, c = 1, sum;
    int i = 3;
    while (i < 20190324) {
        sum = a + b + c;
        if (sum > 10000) {   
            sum %= 10000;
        }
        a = b;
        b = c;
        c = sum;
        i++;
    }
    cout << sum;
    return 0;
}