您的位置:首页 > 其它

蓝桥杯2019省赛 试题 C: 数列求值

2019-03-25 20:21 155 查看
版权声明:小牛牛的奋斗 https://blog.csdn.net/qq_43590403/article/details/88805073

【问题描述】
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写
多余的内容将无法得分。

题解:比赛时因为比赛前一直在看递归,结果本题用了一个递归,没有做出来,程序爆炸了,我就想了一气,竟然忘了直接for循环,然后对每次计算取四位,即对10000取余,这样运行一两秒也出开了。

#include <iostream>
#include <cstdio>
using namespace std;

int a[22000000]={0,1,1,1};

int main()
{

int i;
a[1]=1;a[2]=1;a[3]=1;
for(i=4;i<=20190324;i++)
{
a[i]=(a[i-1]%10000+a[i-2]%10000+a[i-3]%10000)%10000;
}

printf("%d\n",a[20190324]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: