1.问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式
输入包含一个整数n。
输出格式
输出一行,包含一个整数,表示Fn除以10007的余数。
2.代码实现
import java.util.Scanner;
public class Main19 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n =sc.nextInt();
//斐波那契数列用数组来存储,一种方法采用函数调用,另一种直接套用for循环
int[] F=new int[n+2];//数组从第三个数开始,因为F1,F2已经为固定的1
F[1]=1;
F[2]=1;
if(n>2)
{
for(int i=3;i<=n;i++)
{
F[i]=(F[i-1]+F[i-2])%10007;
}
}
System.out.println(F[n]);
}
}