凌晨写的关于一道斐波那契的题,但系统显示运行超时,求各位朋友指点一二^_^
问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式
输入包含一个整数n。
输出格式
输出一行,包含一个整数,表示Fn除以10007的余数。
样例输入
10
样例输出
55
样例输入
22
样例输出
7704
数据规模与约定
1 <= n <= 1,000,000。
代码如下
程序代码:#include<stdio.h>
long fib(long n);
long yu;
int main()
{
long n;
scanf("%ld",&n);
yu=fib(n);
printf("%ld",yu);
return 0;
}
long fib(long n)
{
if(n==1) return 1;
if(n==0) return 0;
if(n>1)
return ((fib(n-1)+fib(n-2))%10007);
}运行结果如下









