魔性的斐波那契
Description
相信各位同学都学过斐波那契数列,1 1 2 3 5 8 …,它从第三项起,每一项都等于前两项之和。现在请你求出斐波那契数列的第n项取模1000000007的结果。
Input
第一行,输入一个正整数t(0 <t <100),代表测试样例总数。
接下来t行,每行有一个正整数n(0 < n ≤ 100000),代表求斐波那契的第n项。
Output
输出第n项取模1000000007以后的结果
Sample Input
1
3
Sample Output
2
不能直接递归打表之后输出时再进行取模,数字太大无法储存,所以将每一项取模后在进行储存和输出。
代码:
#include<stdio.h>
int main()
{
int t;
scanf("%d",&t);
while(t--){
long long int n;
scanf("%lld",&n);
long long int a[100005];
a[0]=1,a[1]=1;
for(int i=2;i<n;i++){
a[i]=(a[i-1]+a[i-2])%1000000007;
}
printf("%lld\n",a[n-1]);
}
return 0;
}