Question:
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
给定数列 1, 1, 1, 3, 5, 9, 17, 从第 4 项开始,每项都是前 3 项的和。
求第 20190324 项的最后 4 位数字。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
Result: 4659
Solve:
暴力就行,计算每一项的时候需要知道前三项,可以利用三个变量来存,而不是选择去开数组
因为最后要求的是最后四位数字,所以可以在不断的求下一项的过程中去模除1e4,只保留后4位的计算结果,同时也可以省去开long long
Code:
#include <iostream>
using namespace std;
//typedef unsigned long long ll;
int a1, a2, a3, temp;
const int mod = 1e4;
int main(void)
{
a1 = a2 = a3 = 1;
for(int i = 4; i <= 20190324; i++){
temp = (a1 + a2 + a3) % mod;
a3 = a2;
a2 = a1;
a1 = temp;
}
cout <<temp % mod;
return 0;
}
最后附上蓝桥杯汇总链接:蓝桥杯C/C++A组省赛历年真题题解
声明:图片均来源于蓝桥杯官网,以个人刷题整理为目的,如若侵权,请联系删除~