变态跳台阶
  • 时间限制:1秒空间限制:32768K

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
 
分析一下明天是个斐波那契数列,我们一步一步退出其通项公式。
 
设台阶数为n, 总跳法为jumps
 
n          jumps
1    1
2    2
3    4
4    8
5    16
 
现在猜测其通项公式为 fbonicc(n) = 2 * fbonicc(n - 1)
 
列出4的全部跳法            5的全部跳法
1111                  1111 (1)
2  11                  2 11  (1)
1  2 1                   1 2 1 (1)
1  1 2                   1  1 2(1)
2     2                   2 2    (1)
1     3                   1 3    (1)
3  1                   3  1 (1)
4                     4   (1)
                     111(1+1)
                     2 1 (1+1)
                     1 2 (1+1)
                     1 1  (2 + 1)
                     2 (2+1)
                     1 (3+1)
                     3 (1+1)
                     (4+1)
 
so 这次应该可以看出规律了!也就是fbonicc(n) = 2 * fbonicc(n - 1)
 
c++代码实现
递归实现
class Solution {
public:
int jumpFloorII(int number) {
if (number == 1) return 1;
else return 2 * jumpFloorII(number - 1);
}
};
非递归实现
class Solution {
public:
int jumpFloorII(int number) {
long long fibonicc = ;
for (int i = ;i <= number;i++)
fibonicc *= ;
return fibonicc;
}
};
                     
 
 
 

(原)剑指offer变态跳台阶的更多相关文章

  1. 剑指Offer 变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法.   其实就是斐波那契数列问题. 假设f(n)是n个台阶跳的次数. f(1) = ...

  2. 剑指offer——变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 问题分析 由于每次跳的阶数不确定,没有一个固定的规律,但是可以了解的是后一次跳 ...

  3. 用js刷剑指offer(变态跳台阶)

    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 牛客网链接 思路 假设青蛙跳上一个n级的台阶总共有f(n)种跳法. 现在青蛙从第n个台阶 ...

  4. 《剑指offer》 跳台阶

    本题来自<剑指offer> 跳台阶 题目1: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路: 同上一篇. C ...

  5. 剑指offer:跳台阶

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). ...

  6. 剑指offer例题——跳台阶、变态跳台阶

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路: n<=0时,有0种跳法 n=1时,只有一种跳法 n=2时,有 ...

  7. 牛客网——剑指offer(跳台阶以及变态跳台阶_java实现)

    首先说一个剪枝的概念: 剪枝出现在递归和类递归程序里,因为递归操作用图来表示就是一棵树,树有很多分叉,如果不作处理,就有很多重复分叉,会降低效率,如果能把这些分叉先行记录下来,就可以大大提升效率——这 ...

  8. 剑指offer:跳台阶问题

    基础跳台阶 题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解题思路 这道题就是斐波那契数列的变形问法,因为跳上第N个台阶 ...

  9. Go语言实现:【剑指offer】跳台阶

    该题目来源于牛客网<剑指offer>专题. 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 1阶:共1种跳法: 2阶 ...

随机推荐

  1. DWR+Spring配置使用

    一.DWR介绍 DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端 ...

  2. mysql(MySQL客户端连接工具)

    在MySQL提供的工具中,DBA使用最频繁的莫过于mysql.这里的mysql不是指MySQL服务,也不是mysql数据库,而是连接数据库的客户端工具.类似于Oracle的sqlplus. 语法: m ...

  3. c#学习系列之字段(静态,常量,只读)

    C#静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量.static变量在对象被实例化时创建,通过对象进行访问一个类的所 ...

  4. 基于Matlab的标记分水岭分割算法

    转自:http://blog.sina.com.cn/lyqmath 1 综述 Separating touching objects in an image is one of the more d ...

  5. hihocoder1636 Pangu and Stones

    思路: 区间dp.dp[l][r][k]表示把区间[l, r]的石子合并成k堆所需要的最小代价. 实现: #include <iostream> #include <cstring& ...

  6. 解决 Cocos2d-x 3.2 error C1041: 无法打开程序数据库vc120.pdb

    单个项目解决方案 解决方案是为项目添加 /FS (Force Synchronous PDB Writes) 编译选项,具体位置在: 一劳永逸的解决方案 直接修改cocos的项目模板templates ...

  7. 深刻的理解Fragment生命周期 都在做什么,fragment生命周期

    先上一个生命周期的图片吧  下面挨个的说一下我平时 都怎么使用 这些 回调函数的 流程: onAttach() 作用:fragment已经关联到activity, 这个是 回调函数 @Override ...

  8. 关于&0xF0的一些认识

    首先,要明白0xF0转换成二进制是多少 ----- 1111 0000(0xF0相当于高四位保留,低四位置为0) 我们拿麻将的一万(0x01).一条(0x11).一筒(0x21) 一万的二进制原码   ...

  9. powershell 根据错误GUID查寻错误详情

    使用azurepowershell 部署模板时,碰到了下面类似的问题: The template deployment 'ExampleDeployment-' is not valid accord ...

  10. APP弱网测试点