zoukankan      html  css  js  c++  java
  • 斐波那契函数的应用

      题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙上一次n级的台阶总共有多少种跳法?

    分析:首先考虑最简单的额情况。如果只有1级台阶,那显然只有一种跳法;如果有2级台阶,那就有两种跳法;跳一级再跳一级;一次性跳到第2级;

      接下来讨论一般情况,把n级台阶时的跳法看成是n的函数;记作f(n)。当n > 2时,第一次跳的时候有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的数目;即为f(n-1); 另一种选择是第一次跳2级,此时跳法数目等于后面剩下的n-2级数台阶数目,即为f(n-2);因此n级台阶的不同跳法的总数f(n)=f(n-1)+f(n-2).

    分析到这里,不难看出这实际就是斐波那契数列了;

     1 long long Fibonacci(unsigned n)
     2 {
     3     int result[2] = {0, 1}; 
     4     if(n<2)
     5     {   
     6         return result[n];
     7     }   
     8 
     9     long long fibNMinusOne = 0;
    10     long long fibNMinusTwo = 1;
    11 
    12     long long fibN = 0;
    13     for(unsigned int i=2;i<=n;++i)
    14     {   
    15         fibN = fibNMinusOne + fibNMinusTwo;
    16         fibNMinusTwo = fibNMinusOne;
    17         fibNMinusOne = fibN;
    18     }   
    19     return fibN;
    20 }
    21 ~     
  • 相关阅读:
    转:Gerrit 学习
    list, set操作
    Dice chrone execise
    【转】terminal 快捷键
    python package list
    爬虫2
    爬虫 1
    django跨表联查传输数据到前端
    vue实现鼠标移入移出事件
    pycharm意外关闭导致报错Unexpected content storage modification:
  • 原文地址:https://www.cnblogs.com/chris-cp/p/3912362.html
Copyright © 2011-2022 走看看