思路:定义一个长度很大的数组,arr[i] = arr[i-1]+arr[i-2],注意不要用int[] arr = new int[n],这个意味着长度取决于n,当我们下边定义arr[1]=1,arr[2]=1,会出问题。
代码:
import java.util.Scanner;
public class Fibonacci {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[1000000];
arr[1] = 1;
arr[2] = 1;
for (int i = 3; i <= n; i++) {
arr[i] = (arr[i - 1] + arr[i - 2]) % 10007;
}
System.out.println(arr[n]);
}
}