题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
给定数列 1, 1, 1, 3, 5, 9, 17, ···从第 4 项开始,每项都是前 3 项的和。
求第 20190324项的最后 4 位数字。
运行限制
最大运行时间:1s
最大运行内存: 128M
结果
4659
代码
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d;
a = b = c = 1;
for (int i = 4; i <= 20190324; i++)
{
d = (a + b + c) % 10000;
a = b;
b = c;
c = d;
}
cout << d << endl;
return 0;
}
思路
类似于斐波那契数列,只需要循环计算即可,关键在于数据太大会溢出,所以就需要对每次计算出来的数进行取余的操作,这样可以保证数据的长度始终为4,不会溢出。