首页 > 其他 > 详细

【剑指offer】9:变态跳台阶

时间:2021-04-14 23:40:52      阅读:22      评论:0      收藏:0      [点我收藏+]

题目描述:

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

解题思路:

先考虑最简单情况就是只有一级台阶,仅有一种跳法。两级台阶,有两种跳法(1+1和2)。三级台阶,有四种跳法(1+1+1,2+1,1+2,3)……

用表格来展示可以方便大家观看:

  台阶数    跳法 数量
         1 1 1
         2 1+1,2 2
         3 1+1+1,2+1,1+2,3 4
        ... ... ...
         n   2^(n - 1)

根据表格可以总结为f(n) = 2*f(n -1),是一个非常明显的递归公式,同样,为了效率问题,可以采用循环方式解决

代码实现

(C实现):

int jumpFloorII(int number ) {
    // write code here
    int res = 1;
    if (number <= 0) return 0;
    if (number == 1) return 1;
    for (int i = 2; i <= number; i++)
    {
        res = res * 2;
    }
    //res = jumpFloorII(number - 1) * 2    递归代码
    return res; 
}

(JavaScript实现):

function jumpFloorII(number)
{
    // write code here
    var res = 1;
    if (number <= 0) {
        return 0;
    }
    if (number == 1) {
        return res;
    }
    for (var i = 2; i <= number; i++) {
        res = res * 2;
    }
//  res = jumpFloorII(number - 1) * 2;    递归代码
    return res;
}

【剑指offer】9:变态跳台阶

原文:https://www.cnblogs.com/zhangshiliu/p/14659864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!