zoukankan      html  css  js  c++  java
  • PHP 跳台阶问题

     1 <?php
     2     #跳台阶问题
     3     #规定跳台阶有两种跳法,一次跳1阶或一次跳2阶,问有n个台阶共有几种跳法
     4     #如果n=1,则只有一种跳法,n=2有两种跳法-一次跳1阶,一次跳2阶
     5     #如果n > 2时,可以分为两种情况,第一种是第一次跳1阶,那么剩下的跳法就是f(n - 1)种了
     6     #第二种是第一次跳2阶,那么剩下的跳法就是f(n - 2)种,则f(n) = f(n - 1) + f(n - 2)
     7     #于是有递推公式
     8     #         | 1    n = 1
     9     # f(n) = <  2    n = 2
    10     #         | f(n - 1) + f(n - 2)    n > 2
    11     #那么这个问题的解法就类似于Fabonacci了
    12 
    13     function jump($n) {
    14         if ($n == 1) return 1;
    15         if ($n == 2) return 2;
    16         $a = 1;
    17         $b = 2;
    18         $i = 3;
    19         while ($i <= $n) {
    20             $c = $a + $b;
    21             $a = $b;
    22             $b = $c;
    23             $i++;
    24         }
    25         return $c;
    26     }
    27 
    28     echo jump(6);
    29 ?>
  • 相关阅读:
    hdu5289 RMQ+二分
    poj1459 最大流Dinic
    poj2391 最大流+拆点
    poj1087&&hdu1526 最大流
    NOI2004 郁闷的出纳员
    Treap入门(转自NOCOW)
    poj 2892
    vijos 1512
    对拍程序
    poj 3264
  • 原文地址:https://www.cnblogs.com/zemliu/p/2710488.html
Copyright © 2011-2022 走看看