您的位置:首页 > 编程语言 > C语言/C++

第十届蓝桥杯省赛C/C++B组 数列求值

2019-04-12 16:55 183 查看

试题 C: 数列求值

本题总分:10 分

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

类似于斐波那契数列的第 n 项,只不过递推式变了,不能用递归,否则爆栈,还有一个问题是直接算到第 20190324 项肯定是会溢出的,在计算过程中要进行取余操作。代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a=1;
int b=1;
int c=1;
int t=0;
for(int i=4;i<=n;i++)
{
t=(a+b+c)%10000;
a=b;
b=c;
c=t;
}
cout<<t;
while(1)
{
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: