问题: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 sc = new Scanner(System.in);
int n = sc.nextInt();
sc.close();
int f[] = new int[n+2];
f[1]=1;
f[2]=1;
for(int i = 3;i<=n;i++) {
f[i] = (f[i-1]+f[i-2])%10007;
}
System.out.print(f[n]);
}
}
`