zoukankan      html  css  js  c++  java
  • 跳台阶

    今天把跳台阶的题整理一下:

    一.传统的题是给定n个台阶,每次可以跳一个台阶或两个台阶,问有多少种跳法?

    此题可以使用递归的方法解决:

    ①.一个台阶时,那么就一种跳法。

    ②.两个台阶时,便有两种跳法,第一种是:第一次跳一个,跳两次就跳完;第二种就是一次跳两个,直接跳完!

    ③.三个台阶时,便有三种跳法,第一种是:每次都跳一个;第二种是:第一次跳一个,第二个跳两个;第三种是:第一次跳两个,第二次跳一个!

    ......一次类推,给定n层台阶,设定跳法数函数为f(n),所以f(n) = f(n-1)+f(n-2)即为此题解!

    C语言实现:

    1 int floor(int n){
    2     if(n<3)
    3         return n;
    4     else
    5         return floor(n-1)+floor(n-2);
    6 }

    二.升级型的跳台阶就是原来可以跳一个或两个,现在变为可以跳一个,二个,三个...n个,这个问题我们也可以递推的方法来做!但是在此之前我们先定义f(0) = 1。一会你就知道这样的好处了!

    首先,n等于1和2时和传统跳台阶一样.

    当n等于3时,f(3) = f(3-1) + f(3-2) + 1

    当n等于4时,f(4) = f(4-3) + f(4-2) + f(4-1) + 1

      ......

    当n等于n时,f(n) = f(n-1) + f(n-1) + ... + f(0)  ①

    当n等于n-1时,f(n-1) = f(n-2) + f(n-3) + ... + f(0)   ②

    ①-②得:f(n) = 2*f(n-1)     n>=3

     int floor(int n){
         if(n<3)
             return n;
         else
             return 2*floor(n-1);
     }

     

     

  • 相关阅读:
    delphi 使用条件编译指令
    [转] 编程之道 二
    delphi中XLSReadWrite控件的使用(1)简介
    delphi中XLSReadWrite控件的使用(2)delphi XE下安装
    墙纸自动换1.4算法分析
    Delphi中设置屏幕分辨率
    delphistringgrid另类自动向下滚屏
    【Hex 格式文件操作】一、intel hex格式文件说明
    INTEL hex文件格式
    [转]编程之道 一
  • 原文地址:https://www.cnblogs.com/zhaoyulong/p/8645799.html
Copyright © 2011-2022 走看看