试题C 数列求值

 

 答案:4659

 

#include <iostream>
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;
}

 

posted @ 2022-03-21 17:29  湘summer  阅读(62)  评论(0编辑  收藏  举报