• 2255: Fibonacci数列(数论取模运算)


    2255: Fibonacci数列

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 139  解决: 64
    [提交][状态][讨论版][命题人:541507010105]

    题目描述

    Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
    当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

    输入

    输入包含一个整数n。

    数据规模与约定

    1 <= n <= 1,000,000。

    输出

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

    样例输入

    10

    样例输出

    55

    提示

    在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

    #include <iostream>
    #include <cstring>
    
    using namespace std ; 
    
    #define maxn 1100000
    int fib[maxn] ; 
    
    
    int main(){
        int n ; 
    
        cin >> n ; 
        memset(fib , 0 , sizeof(fib)) ; 
        fib[1] = fib[2]= 1 ; 
        for(int i=3 ; i<=n ; i++){
            fib[i] = (fib[i-1] + fib[i-2])%10007 ; 
        }
    
        cout<<fib[n]<<endl ; 
    
    
        return 0 ; 
    }
  • 相关阅读:
    今日头条、Face++开发岗面经
    美团offer面经
    成都百度测试开发一二面面经
    美团四面面经
    久邦数码(3G门户)面试
    58 面试
    好未来提前批
    百度提前批
    新浪面经
    Java Programs
  • 原文地址:https://www.cnblogs.com/yi-ye-zhi-qiu/p/8916136.html
Copyright © 2020-2023  润新知