试题 C: 数列求值
本题总分:10 分
【问题描述】
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案:4659
思路:
类比斐波那契数列
注意:
1、使用数组会发生溢出问题,所以可以用a,b,c,d来代替;
2、题目要求最后 4 位数字即可,所以每次对结果求余10000可防止溢出。
#include<iostream>
using namespace std;
int main(){
int a=1,b=1,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;
}