• 算法与数据结构---6.1、斐波那契数列-递推解法


    算法与数据结构---6.1、斐波那契数列-递推解法

    一、总结

    一句话总结:

    波那契数列递推的关系式F(n)=F(n-1)+F(n-2)已经有了,所以明确一下循环的边界条件,递推的代码就很好敲了
    #include <iostream>
    using namespace std;
    const int mod=1000000007;
    int f[200000];
    int main(){
        int n;
        cin>>n;
        //1、确定初始值
        f[1]=f[2]=1;
        //2、循环做递推,3-n
        for(int i=3;i<=n;i++){
            //F(n)=F(n-1)+F(n-2)
            f[i]=(f[i-1]+f[i-2])%mod;
        }
        cout<<f[n]<<endl;
        return 0;
    }

    二、斐波那契数列

    博客对应课程的视频位置:6.1、斐波那契数列-递推解法
    https://www.fanrenyi.com/video/27/273

    1、题目描述

    问题描述:

    满足F1=F2=1,F(n)=F(n-1)+F(n-2)的数列称为斐波那契数列(Fibonacci),
    它的前若干项是1,1,2,3,5,8,13,21,34,55...,求此数列第n项 mod 10^9+7的值(n>=3)。

    输入格式:
    一行一个正整数n

    输出格式:
    一行一个整数表示答案。

    输入输出样例:
    输入5,输出5
    输入10,输出55

    【数据范围】
    对于60%的数据,1<=n<=92;
    对于100%的数据,1<=n<2^63。


    题目位置:
    P1962 斐波那契数列 - 洛谷 | 计算机科学教育新生态
    https://www.luogu.com.cn/problem/P1962

    2、递推解法

     1 /*
     2 
     3 递推关系式:
     4 题目中已经非常明显的给出了,就是
     5 F(n)=F(n-1)+F(n-2)
     6 
     7 解决递推问题的一般步骤
     8 1、建立递推关系式:F(n)=F(n-1)+F(n-2)
     9 2、确定边界条件:
    10 f(1)=f(2)=1,
    11 所以我们的循环可以从3开始,到n结束,
    12 也就是3-n
    13 
    14 算法步骤:
    15 1、确定初始值
    16 2、循环做递推,3-n
    17 
    18 */
    19 #include <iostream>
    20 using namespace std;
    21 const int mod=1000000007;
    22 int f[200000];
    23 int main(){
    24     int n;
    25     cin>>n;
    26     //1、确定初始值
    27     f[1]=f[2]=1;
    28     //2、循环做递推,3-n
    29     for(int i=3;i<=n;i++){
    30         //F(n)=F(n-1)+F(n-2)
    31         f[i]=(f[i-1]+f[i-2])%mod;
    32     }
    33     cout<<f[n]<<endl;
    34     return 0;
    35 }

     
  • 相关阅读:
    过年了!
    hibernate学习(7)——一对一双向外键关联
    MySql字段名和保留字冲突解决办法
    再读《精通css》02:选择器
    hibernate学习(6)——一对一单向外键关联
    区分IE6,7,8和FF的css hack
    再读《精通css》00
    java日期时间处理工具类封装
    再读《精通css》01
    hibernate学习(5)——savaOrUpdate,clear,flush
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13044893.html
Copyright © 2020-2023  润新知