题目叙述:
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
详细要求:
解题思路:
运用数组来储存余数,采用递归的方法来实现。
代码详情:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int n = in.nextInt(); //键盘录入n
int F[] = new int[n+2]; //定义数组,长度为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; //用来保存余数
}
}
//最终F[n]中储存得数便为余数
System.out.println(F[n]);
}
}
知识点:
- 数组的运用
- 递归思想