问题描述:给定数列1,1,1,3,5,9,17,…从第四项开始,每项都是前三项的和。求第20190324项的最后四位数。
答案提交:这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案:4659
这题很类似于斐波那契数列,可以说是它的一个变型。但是沙雕的我,居然在比赛的时候写错了!!!好像吐血。我是先将每项的结果求出来,最后再对其求模,最后才知道会溢出,哎~~~
正确的做法是对每项求模!
#include<iostream>
using namespace std;
int a[20190330];
int main()
{
int i;
for(i=1;i<=20190324;i++)
{
if(i<=3)
a[i]=1;
else
a[i]=(a[i-1]+a[i-2]+a[i-3])%10000;
}
cout<<a[20190324]<<endl;
return 0;
}
写错了,好幽怨,哎。。。