凌晨写的关于一道斐波那契的题,但系统显示运行超时,求各位朋友指点一二^_^
问题描述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); }
运行结果如下