2920: 【作】练67.1 斐波那契数列
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:24
解决:8
题目描述
斐波那契数列是指这样的数列:数列的第一个和第二个数都为$1$,接下来每个数都等于前面$2$个数之和。给出一个正整数$a$,要求斐波那契数列中第$a$个数对$1000$取模的结果是多少。
输入
第1行是测试数据的组数$n$,后面跟着$n$行输入。每组测试数据占$1$行,包括一个正整数$a$($1≤a≤1000000$)。
输出
$n$行,每行输出对应一个输入。输出应是一个正整数,为斐波那契数列中第$a$个数对$1000$取模得到的结果。
样例输入 复制
4
5
2
19
1
样例输出 复制
5
1
181
1
提示
#include<iostream> using namespace std; int n; int a[1000005], b[1000005]; int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; } b[1] = 1; for (int i = 2; i <= 1000000; i++) { b[i] = (b[i - 1] + b[i - 2]) % 1000; } for (int i = 1; i <= n; i++) { cout << b[a[i]] << endl; } return 0; }