zoukankan      html  css  js  c++  java
  • 21递归:斐波那契

    【题目】 
    **Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 
    当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 
    输入格式 
    输入包含一个整数n。 
    输出格式 
    输出一行,包含一个整数,表示Fn除以10007的余数。 
    说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。 
    样例输入 
    10 
    样例输出 
    55 
    样例输入 
    22 
    样例输出 
    7704 
    数据规模与约定 
    1 <= n <= 1,000,000。

    【分析】 
    当n==1或者n==2的时候,Fn=1; 
    当n>=3的时候,Fn=Fn-1+Fn-2。

    import java.math.BigInteger;
    import java.util.*;
    
    public class Lanq {
    
        public static void main(String[] args) {
            Fibonacci();
        }
    
        public static void Fibonacci() {
            Scanner sc = new Scanner(System.in);
            int n=sc.nextInt();
            int a[]=new int[1000001];
            a[0]=0;a[1]=1;a[2]=1;
            for(int i=3;i<=n;i++)
            {
                a[i]=a[i-1]%10007+a[i-2]%10007;
            }
            System.out.println(a[n]);
        }
    }
    

      

  • 相关阅读:
    Java Lambda表达式初探
    解开lambda最强作用的神秘面纱
    常用正则表达式
    js,java时间处理
    Java 8新特性探究(二)深入解析默认方法
    Java 8里面lambda的最佳实践
    lambda表达式和闭包
    Lambda语法篇
    lambda表达式
    依赖注入和控制反转的理解
  • 原文地址:https://www.cnblogs.com/passion-sky/p/8553772.html
Copyright © 2011-2022 走看看