package Fibonacci; /* * 问题描述 * Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 *当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 *输入格式 *输入包含一个整数n。 *输出格式 *输出一行,包含一个整数,表示Fn除以10007的余数。 */ import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int a=1,b=1; int num=0; if(n==0 || n==1){ System.out.println(1); } else{ for(int i=3;i<=n;i++){ num=(a+b)%10007; a=b; b=num; } System.out.println(num); } } }
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368......
特别指出:第0项是0,第1项是第一个1。
这个数列从第2项开始,每一项都等于前两项之和。