Fibonacci数列的递推公式为Fn=Fn-1 Fn-2,其中F1=F2=1。
n大时,Fn也非常大。 我现在想知道Fn除以10007的馀数是多少。
输入格式
输入整数n。
输出格式
输出包含表示Fn除以10007后的馀数的整数的行。
说明:本题求出的答案是Fn除以10007的余数,所以我们只要能算出这个余数就可以了,算出Fn的准确值后,计算结果就不用再除以10007取余数了。 直接计算余数往往比先算出原数再取余数简单。
样品输入
10
样品输出
55
样品输入
22
样品输出
7704
import java.util.Scanner; 求public class Fibonacci {//斐波那契数列的要求范围很广,有时一定会超过int型。 正好这个问题又要求求10007的余数,把求的各项保存在数组前先对10007取余数也不影响结果。 //保存在数组中的最大数字为10006,必然不会超过数组的上限//求斐波那契数列的另一种方法是递归调用的方法returngetfib(n-1 ) getfib ) n-2 )静态int ) staticscannersc=new scanner (system.in ); publicstaticvoidmain (string [ ] args ) {nums[1]=1; nums[2]=1; int n=sc.nextInt (; for(intI=3; i=n; I({nums[I]=) nums[I-1]nums[I-2] ) 007; }system.out.println(nums[n]; }