测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A38316. 数列用以下方式构造数列: 数列的第一个和第二个数都为 1 , 接下来每个数都等于前面 2 个数之和。给出一个正整数 a, 要求数列中第 a 个数对 1 000 取模的结果是多少。输入第 1 行是测试数据的组数 n, 后面跟着 n 行输入。 每组测试数据占 1 行, 包括一个正整数 a(1 <= a <=1000000)。输出n 行, 每行输出对应一个输入。 输出应是一个正整数, 为数列中第 a …

填空题 中等

题目描述

数列

用以下方式构造数列: 数列的第一个和第二个数都为 1 , 接下来每个数都等于前面 2 个数之和。

给出一个正整数 a, 要求数列中第 a 个数对 1 000 取模的结果是多少。

输入

第 1 行是测试数据的组数 n, 后面跟着 n 行输入。 每组测试数据占 1 行, 包括一个正整数 a(1 <= a <=1000000)。

输出

n 行, 每行输出对应一个输入。 输出应是一个正整数, 为数列中第 a 个数对 1 000 取模得到的结果。

样例输入

4

5

2

19

1

样例输出

5

1

181

1

参考答案

#include <iostream> using namespace std; int a[1000000]; void sl() { a[0]=1; a[1]=1; for (int i=2;i<1000000;i++) { a[i]=a[i-1]+a[i-2]; a[i]=a[i]%1000; } } int main() { sl(); int b; cin>>b; for (int i=0;i<b;i++) { int c; cin>>c; cout<<a[c-1]<<endl; } return 0; }
上一题 下一题