递归解决爬楼梯问题

上楼梯过程中,一次可以走1阶,也可以走两阶,如果有n阶楼梯,一共可以有多少种走法?

推理:
我们在上楼梯的过程通过一阶或是两阶的走法,不断减少楼梯的步数,也就是n阶台阶我们可以通过n-1或是n-2的方式来减少台阶的阶数,最终归于剩下一阶或是两阶的情况来处理

推理走法过程:
n阶:可以走一步或是走两步,如果走一步就是n-1;如果是走两步就是n-2
n-1阶:可以走一步或是走两步,如果走一步就是(n-1)- 1;如果是走两步就是(n-1)- 2
n-2阶:可以走一步或是走两步,如果走一步就是(n-2)- 1;如果是走两步就是(n-2)- 2
…………
…………
…………
2阶:可以走一步或是走两步,如果走一步就是2-1;如果是走两步就是2-2
1阶:走一步就走完
结论:我们可以通过以上推论得出,通过相同的方式来减少台阶数,增加走法。减少一阶有一种走法,减少两阶有两种走法,通过减少一阶台阶,走法加一,或是减少两阶台阶,走法加二的方式逐渐减少台阶来获得最终走法。
示例代码

public class TestDiGui {//声明递归方法public static long DiGui(long n) {//递归出口if(n == 1 || n ===2) {//如果剩下1阶,有1种走法,返回1,//如果剩下2阶,有2种走法,返回2return n;}else {/**如果有n阶,分为第一步走一阶,或是走两阶的;走1阶是一个分支,走两阶又是另一个分支;不同的走法又进入了不同的DiGui函数中*/return DiGui(n - 1) + DiGui(n - 2);}}public static void main(String[] args) {}
}

以上为个人学习总结,如有不足之处,还望各位多多指教!!!

递归解决常见爬楼梯走一步或是两步问题,走多步也是相同的道理!相关推荐

  1. 仅靠一种普通的泡沫橡胶,这台机器人解决了“爬楼梯”的难题

    机器人算法和控制技术正变得越来越复杂,每一步创新都意味着大量的技术投入. 现在,一家日本公司另辟蹊径,仅靠使用泡沫橡胶,就完成了机器人爬楼梯的技术突破. 5月20-24日,国际机器人与自动化会议在加拿 ...

  2. Python 爬楼梯问题--有n阶台阶,上楼可以一步上1阶,2阶,3阶,计算共有多少种不同的走法?

    Python爬楼梯问题:有n阶台阶,上楼可以一步上1阶,2阶,3阶,计算共有多少种不同的走法? 总共n步台阶(先假设n>3),f(n)表示n步台阶的走法总数 1.第一步如果是只走1步台阶,剩下的 ...

  3. python爬楼梯多少种_Python 爬楼梯问题--有n阶台阶,上楼可以一步上1阶,2阶,3阶,计算共有多少种不同的走法?...

    Python爬楼梯问题:有n阶台阶,上楼可以一步上1阶,2阶,3阶,计算共有多少种不同的走法? 总共n步台阶(先假设n>3),f(n)表示n步台阶的走法总数 1.第一步如果是只走1步台阶,剩下的 ...

  4. 爬楼梯和爬楼梯进阶c++

    该题是动态规划入门题,可扩展性较强.主要思想参考代码随想录 文章目录 题目分析 题目描述 题目分析 实践步骤 代码实现 总结: 复杂度 知识考察 题目分析 题目描述 基础爬楼梯,每次以1或2步爬楼梯, ...

  5. leetcode70 爬楼梯

    爬楼梯 分析:对于每一次向上走台阶一共两种可能,一个台阶或者两个台阶,因此则有递归: f(3) = f(1) + f(2) f(4) = f(2) + f(3) - f(n) = f(n-2) + f ...

  6. C语言(CED)王老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数(递归求解)

    (请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 题目大意:王老师爬楼梯,他可以每次走1级或者2级,输入楼 ...

  7. 爬楼梯--每次只能走一步或者两步,但是不能连续走两步

    问题描述 爬楼梯–每次只能走一步或者两步,但是不能连续走两步 结合上面的图形 如果用户的楼层大于了2的话, 走的方式就分为了两种,第一次走一步或者第一次走两步,当用户走一步的话,下一次的走法就有:走一 ...

  8. 爬楼梯(递归——奇数步,偶数步扩展)

    题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 思路: 采用递归的思想,最后一步可以爬1个或者两个台阶,所以可以得出递归 ...

  9. 算法一:递归(包含Hanoi问题、N皇后问题、逆波兰表达式、爬楼梯、放苹果、全排列)

    递归 递归在算法中具有很重要的地位,也是很多学习编程的初学者非常头疼的问题,看我的这篇文章,希望能为还处于迷雾中的你带来希望 首先我们要知道递归的作用: 1.可替代多重循环 2.解决本来就是用递归形式 ...

最新文章

  1. CF375D Tree and Queries(dsu on tree)
  2. c语言数组中的字母可以相等吗,C语言数组比较
  3. java 网线串口开发_C++标准语言不断被开发,C++却走向了下坡路!
  4. CentOS7.0下编译安装Nginx 1.10.0
  5. s3c6410学习笔记-烧写uboot+构建文件系统
  6. 将Excel文件转换为Html
  7. .mb是什么文件_神经网络长什么样不知道? 这有一份简单的 pytorch可视化技巧(1)
  8. .ajax get 写法,原生Ajax写法(GET)
  9. html加css作品,我的影视作品,如何在博客园发布带有CSS样式的HTML
  10. PHP递归写入MySQL无限级分类数据
  11. 线性代数 --- 线性代数中的一些特殊矩阵(被广泛用于高斯消元法的消元矩阵E)(个人笔记扫描版)
  12. 2022年最新微博批量删除代码_自动化删除新浪微博代码
  13. vivo oppo 相机权限处理
  14. HTML渐变背景不重复,在身体上设置的CSS3渐变背景不会拉伸,而是重复?
  15. IE主页被2345(782782)篡改解决办法
  16. 2022年武汉市小微企业服务补贴券签约服务机构申报条件、材料及时间
  17. CSDN博客给我带来的一些诱惑和选择机会
  18. [小O地图-XOMAP] - 功能简介
  19. Axure RP 9 授权码
  20. 【数据库查询--计算机、电脑系列】--查询价格最高的打印机型号。

热门文章

  1. 淘宝收藏加购对流量分配有影响吗?
  2. 某zhan sign
  3. 一把王者的时间带你拿捏计算机中整形提升的问题
  4. 一起自学SLAM算法:5.5 分布式架构主机
  5. 音乐播放器android-1.0
  6. Dubbo 专题(基础篇):Dubbo 介绍、环境搭建与实践
  7. Windows 11操作系统 ndis.sys 驱动无限蓝屏问题修复
  8. java接口里面可以定义变量么?
  9. 人工智能中的线性代数:如何理解并更好地应用它
  10. 细谈Type-C、PD原理(二)