• 斐波那契函数的应用


      题目:一只青蛙一次可以跳上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 ~     
  • 相关阅读:
    Flex实现页面多态state对象
    Flex精华摘要使用AS脚本
    JMeter最常用的三种类型的压力测试
    工作流简介
    Android模拟器使用模拟SD卡
    交大研究生,就一个字牛
    Google code上利用SVN托管代码
    主流浏览器内核概览
    Android开发之ADB使用
    Redis入门教程
  • 原文地址:https://www.cnblogs.com/chris-cp/p/3912362.html
Copyright © 2020-2023  润新知