(此博客仅为学习记录,不喜勿喷)
问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
源码如下:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int f1 = 1;
int f2 = 1;
int t = 0;
for (int i=3;i<=n;i++) {
t = f2;
f2 = (f1 + f2)%10007 ;
f1 = t;
}
System.out.println(f2);
}
}
该题需要注意的是数据太大的问题,当数据太大,long型的变量也存不下,所以最好在循环中每次都除以10007取余,这样就解决了该问题。