• 入门训练 Fibonacci数列


      入门训练 Fibonacci数列  
    时间限制:1.0s   内存限制:256.0MB
    问题描述

    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。
    #include<stdio.h>  
    #define M 10007  
    int main()  
    {  
        int a1,a2;  
        a1=a2=1;  
        int sum=0,temp;//sum是保存余数的变量 ,temp是为了方便交换数据   
        long n;//因为n>=1 and n<=1000000   
        long i;  
        scanf("%ld",&n);  
          
        for(i=1;i<=n;i++)  
        {  
            sum=a1%M;  
            temp=a2;  
            a2=(a1+a2)%M;  
            a1=temp;   
        }  
        printf("%d
    ",sum);  
        return 0;  
    }   
    import java.util.Scanner;
    
    public class Fibonacci {
        public static void main(String[] args) {
            
            final int m = 10007;
            
            int a = 1 , b = 1 , t ;
            int sum = 0;
            
            long n,i;
            Scanner cin = new Scanner(System.in);
            n = cin.nextLong();
            
            for(i = 0; i < n; i++ ){
                
                sum = a%m;
                t = b ;
                b = ( a + b )%m;
                a = t;
                            
            }
            
            System.out.println(sum);
        
        }
    
    }
  • 相关阅读:
    php 5.3新特性
    php:// — 访问各个输入/输出流(I/O streams)
    php 二维数组排序
    js 面向对象式编程
    jQuery 源码学习笔记
    c++ 指针(二)
    c++ 指针(一)
    visual studio 2012 的制作ActiveX、打包和发布
    用linqPad帮助你快速学习LINQ
    Caliburn.Micro学习笔记(五)----协同IResult
  • 原文地址:https://www.cnblogs.com/upstart/p/5998311.html
Copyright © 2020-2023  润新知