标题:数列求值 (本题总分:10 分)###
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个 4 位整数(提示:答案的千位不为 0) ,在提交答案时只填写这个整数,填写多余的内容将无法得分。
这个问题确实没想出来,单纯认为开数组但是开数组又肯定达不到要求,开不到这么大,然后就不知道怎么办了。
其实根本不用开数组,只要设目标数字然后一位一位后移就可。有时候想问题就要换一个思路。
下面是AC代码:
#include <bits/stdc++.h>
using namespace std;
int fun(int n){
int a=1,b=1,c=1;
int ans;
for(int i=4;i<=n;i++){
ans=(a+b+c)%1000;
a=b;
b=c;
c=ans;
}
printf("%d\n",ans);
}
int main(){
int n;
cin>>n;
fun(n);
return 0;
}