3423 - Fibonacci数列 

Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

题目输入


&nbsp; 输入包含一个组数T,表示有T组测试数据。<span style="font-size:13.3333339691162px;line-height:1.5;">&nbsp;(0&lt;T&lt;100)</span> 

<br />

&nbsp; 每组数据包含一个正整数N(0&lt;N&lt;1000)。

题目输出

对于每组数据,输出一行,包含一个整数,表示Fn除以10007的余数。 

输入/输出样例

题目输入

2
10
22

题目输出

55
7704

提示

中国剩余定理  (a+b)%M = (a%M + b%M)%M

C语言解答

#include<stdio.h>
int main()
{
	long int a[1000],b,n,t;
	a[0]=1;
	a[1]=1;
	for(b=2;b<1000;b++)
	{
	a[b]=((a[b-2]+a[b-1])%10007);
	}
	scanf("%d",&t);
	while(t--)
	{
	scanf("%d",&n);
	printf("%ld\n",a[n-1]);
}
}

C++解答

#include<stdio.h>
int main()
{
	long long int a[1001];
	const int MOD = 10007;
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d",&n);
		a[1] = 1;
		a[2] = 1;
		for(int i = 3;i <= n;i++)
		{
			a[i] = (a[i-1] + a[i - 2]) % MOD;
		}
		printf("%lld\n",a[n]);
	}
	return 0;
}

提示

中国剩余定理  (a+b)%M = (a%M + b%M)%M

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题