Java实现Fibonacci取余

Description
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

Input
多组测试数据

输入包含一个整数n。1 <= n <= 1,000,000。

Output
每组输出一行,包含一个整数,表示Fn除以10007的余数。

Sample Input
10
22

Sample Output
55
7704

package 第八次模拟;

import java.util.Scanner;

public class Demo12Fibonacci {
public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	while(sc.hasNext()){
		
	
	int n = sc.nextInt();
	int []f = new int [n+2];
	int [] count=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]);
		if(f[i]/10007>=1){
			f[i]%=10007; 
		}
		 
	}
	System.out.println(f[n]);
	
	}
	
 
}
}

posted @ 2020-03-03 11:35  南墙1  阅读(78)  评论(0编辑  收藏  举报