斐波那契
时间限制: 1.0s 内存限制: 512.0MB
【问题描述】
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
<此题禁止使用数组容器等数据结构>
【输入格式】
输入一行包含一个整数 n。
【输出格式】
输出一行,包含一个整数,表示满足条件的数的和。
【样例输入】
22
【样例输出】
7704
【评测用例规模与约定】
对于所有评测用例,1 ≤ n ≤ 1,000,000。
import java.util.Scanner;
class Main{
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int n=sc.nextInt();
System.out.println(fi(n));
}
public static long fi(int val) {
if(val==1||val==2) {
return 1;
}
long temp=0;
long f1=1,f2=1;
for(int i=3;i<=val;i++) {
temp=(f1+f2)%10007;
f1=f2;
f2=temp;
}
return temp;
}
}