zoukankan      html  css  js  c++  java
  • 蓝桥杯入门——1.Fibonacci数列

    问题描述
    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 <iostream>
    
    using namespace std;
    
    int main()
    {
        int n;int p1=1,p2=1,p3=1;
        cin>>n;
        if(n!=1&&n!=2)
            for(int i=3;i<=n;i++){
                p3=(p1+p2)%10007;
                p1=p2;
                p2=p3;
            }
        cout<<p3;
        return 0;
    }
    
  • 相关阅读:
    visual sudio开发工具使用小技巧
    JS去除右边的逗号
    下拉标题
    sp_addextendedproperty
    触发器的使用
    缺失一个正数
    组合总和 去重
    拖动 Drag
    n皇后问题
    括号生成
  • 原文地址:https://www.cnblogs.com/littlepage/p/11690911.html
Copyright © 2011-2022 走看看