编程题

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

分析

对于n级台阶,第一步的跳法有n种:跳1级、跳2级、跳3级…跳n级
跳1级,剩下的n-1级的跳法是f(n-1);
跳2级,剩下的n-2级的跳法是f(n-2);
跳3级,剩下的n-3级的跳法是f(n-3);

跳n-1级,剩下的1级的跳法是f(1);
跳n级,剩下的0级的跳法是f(0)=0;

所以f(n) = f(n-1)+f(n-2)+…+f(1)
而f(n-1) = f(n-2)+f(n-3)+…+f(1)…

以上两个式子相减,得最终:f(n) = 2 * f(n-1)

代码

public class Solution {public int JumpFloorII(int target) {if(target <= 0)return 0;if(target == 1)return 1;if(target >= 2)return 2*JumpFloorII(target-1)}

更简便的方法

一行代码的事,1<<(target-1)
f(n)=f(n-1)+f(n-2)+…f(1)
f(n-1)=f(n-2)+f(n-3)+…f(1)
则f(n)=2( f(n-2)+f(n-3)+…f(1) )=2*f(n-1)

f(1)=1 则f(n)=2*f(n-1)=2*2*f(n-2)=2*2*2*f(n-3)...=2^(n-1)*f(1)= f(n) = 2^(n-1)

变态跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?相关推荐

  1. [递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    这题是用C写的~ 在牛客上半天找不着ACM模式,练习模式里只有核心代码模式 这样用C语言编译器就不能自定义函数啊,不鸡肋吗??? 解决方法:在核心代码模式下用C++编译器(反正C++完全兼容C的不是吗 ...

  2. 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法

    文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...

  3. c语言青蛙游戏,c语言:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?...

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 解:把n级台阶时的跳法记为f(n),当n>2时,第一次跳的时候有两种不同的选择:一是第一次只跳1级,此 ...

  4. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?(递归与动态规划)

    一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法? private static HashMap<Integer, Long> record = n ...

  5. 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 分析: 对于本题,前提只有 一次 1阶或者2阶的跳法. a.如果两种跳法, ...

  6. 牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式. ...

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

    import java.util.Scanner;/* 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.请用递归和循环2中方法实现答案来源:https://w ...

  8. 一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法?

    一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法? 解题思路 :每次跳1到n,那么如果是n阶台阶,一次就可能跳1~n阶(话说n=1000,青蛙腿肯定绑火箭了),乍一 ...

  9. (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    文章目录 题目描述 思路 解法一:递归暴力破解 解法二: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 解法一 ...

最新文章

  1. JAVA多线程提高十四: 面试题
  2. c#通过HttpClient来调用Web Api接口
  3. adf开发_如何在ADF中将参数传递给ActionListener
  4. 最大子序和(Leetcode第53题)
  5. Linux命令-yum
  6. 3.4 卷积的滑动窗口实现
  7. python导入数据库的数据怎么在qt界面里刷新_Python中使用pyqtgraph库实现数据可视化之逐点刷新波形图...
  8. 【NOIP2002】【codevs1010】过河卒
  9. webgis 行政图报错_开源WebGIS:地图发布与地图服务
  10. 姓名评分程序PHP,姓名测试打分,免费姓名评分测试,免费姓名测试评分 - 姓名算命最准的网站...
  11. 软路由安装php,爱快软路由上安装黑群晖方法教程
  12. 为什么大家都说SELECT * 效率低
  13. 设CPU共有16根地址线,8根数据线,并用MREQ (低电平有效) .作访存控制信号,R/W作读写命令信号(高电平为读,,低电平为写)。
  14. 解决ROS工作空间每次使用都要source的问题
  15. 关于premiere中遮罩的几点总结 数媒0802 宋志超
  16. c 语言程序设计复习,C语言程序设计复习题
  17. OE分布式智能云生态
  18. HDU2188 选拔志愿者题解
  19. Linux 查看文件的内容 - head、tail、cat、more、less
  20. MySQL数据库简单的操作命令

热门文章

  1. 打地鼠游戏(2D)学习笔记
  2. 解密!区块链BaaS是什么?
  3. 计算机无法打开cad文件,无法打开cad文件的解决方法
  4. Java单元测试实践-15.Stub、Replace、Suppress Spring的方法
  5. 用C语言恶搞你的好朋友strcmp()
  6. 阿里云服务器租赁注意点
  7. 美国访问学者生活之行-公交及考驾照
  8. 设计一个长方形的类,成员的变量有长与宽,成员函数要求周长与面积,然后进行测试。
  9. Arduino自助饮料机程序
  10. Java框架学习笔记--Mybatis学习