给定数列 1, 1, 1, 3, 5, 9, 17,⋯,从第 4项开始,每项都是前 3项的和。
求第 2019032420190324 项的最后 4位数字。
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
int i,j,n,a1,a2,a3,a4;
cin>>n;
a1=1,a2=1,a3=1;
for(i=4;i<=n;i++)
{
a4=(a1+a2+a3)%10000;
a1=a2;
a2=a3;
a3=a4;
}
cout<<a4;
return 0;
}
分析:刚开始,分析题目,得知这是递推前三项和等于第四项,当项数少时,我们可以用几个字母来进行递推,以此减少空间复杂度,递推公式就为a4=a1+a2+a3