【分析】这是一典型的排列组合问题, 但若用排列组合来分析则演变为纯数学问题,则无法用递归的方法来解决。能使用递归的方法的模型的规律是问题的解决方法与问题的规模无关,因此可以先从数字的规律入手:
假设共有i阶台阶, 走完所有的台阶有n种走法,则:
1. i  = 1时,  n = 1;   {1}
2. i =  2,       n = 2;   {[1, 1],  [2]}
3. i =  3,       n = 3;   {[1, 1, 1],  [1, 2], [2, 1]}
4. i =  4,       n = 5;   {[1, 1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 2]}
5. i =  5,       n = 8;    ............
.........................................
.........................................
因此,我们可以得到规律
f(n) = f(n-1) + f(n-2)  (n>=3), 从而得到递归算法。

转载于:https://blog.51cto.com/zyh2000/327641

有1000阶的台阶,一个人每次只能走一阶或两阶,用一个递归算法求出共有多少种走法。...相关推荐

  1. 有50级台阶,每次走一阶或两阶,有多少种走法?

    在网上看到这个问题,有人给出了代码,用的是求Fibonacci数列前n项和的原理,代码如下: int Fibonacci(int n) {int result[3] = {1, 2};if (num ...

  2. 字节算法题--N阶台阶,每次走一步或两步,计算共有多少种走法,并将每种走法打印出来。

    N阶台阶,每次走一步或两步,计算共有多少种走法,打印出每种走法. 一 走台阶算法(本质上是斐波那契数列)在面试中常会遇到,描述就如题目那样:总共100级台阶(任意级都行),小明每次可选择走1步.2步或 ...

  3. 【面试题】N阶台阶,每次走一步或两步,计算共有多少种走法,并将每种走法打印出来。

    题目重述:有N阶台阶,每次可以走一步也可以走两步,计算共有多少种走法,并将每种走法打印出来. 以下解法主要利用了二叉树和递归的解题思路. public class StepCompute {priva ...

  4. 编程题-有n步台阶一次只能上1步或2步共有多少种走法

    问题: 有n步台阶,一次只能上1步或2步,请共有多少种走法,请使用编程实现. 编程题实现: 方法1-递归 //实现f(n):求n步台阶,一共有几种走法public int f(int n){if(n& ...

  5. 【组合数学+动态规划】在如下8*6的矩阵中,请计算从A移动到B一共有____种走法。要求每次只能向上或向右移动一格,并且不能经过P。...

    在如下8*6的矩阵中,请计算从A移动到B一共有__种走法.要求每次只能向上或向右移动一格,并且不能经过P. A:456  B:492  C:568  D:626  E:680  F:702 解析:  ...

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

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

  7. 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?请编程实现。

    有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?请编程实现. 输入: 输入一个整数M(1<=M<=20),表示楼梯的级数. 输出: 输出不同走法 ...

  8. Java学习手册:(数据结构与算法-递归)一个人爬楼梯,可以一次爬一阶或者两阶,问n层楼梯有多少种爬法?

    算法思想: (1)只有一层楼梯,有1种方法,即 f(1) = 1; (2)有两层楼梯,有2种方法,即 f(2) = 2: (3)有三层楼梯,a.如果第一步爬一层,后面还有两层楼梯未爬,有2种方法,即f ...

  9. 题目3:一段楼梯共n级台阶,规定每一步只能跨一级或两级或三级。要等上第n级台阶共有几种走法?

    题目3:一段楼梯共n级台阶,规定每一步只能跨一级或两级或三级.要等上第n级台阶共有几种走法? 斐波那契数列问题:递归或动态规划均可解此类问题.跳台阶是典型应用之一. 思路:我们先从最后开始考虑,因为规 ...

最新文章

  1. 注意力机制又一大作!DCANet:学习卷积神经网络的连接注意力
  2. iOS:自己写的一个星级评价的小Demo
  3. 1.1.1 概念、组成、功能和分类
  4. Redis-Predis 扩展
  5. java volatile 死锁_Java 多线程:volatile 变量、happens-before 关系及内存一致性
  6. 【UESTC 594】我要长高
  7. 【免费公测中】为数据赋予超能力,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics
  8. idea创建springboot项目+mybatis_从spring boot项目创建到netty项目过渡1
  9. 导出csv文件数字会自动变科学计数法的解决方式
  10. error: Setup script exited with error: Unable to find vcvarsall.bat
  11. HDOJ 1007(T_T)
  12. 省选专练之后缀自动机zoj1729 Hidden Password
  13. 【国外网站软件下载慢解决】
  14. 酒店客房预订管理系统简单实现
  15. Aspose word 转换为pdf 排版错位和数据丢失
  16. 给edittext每行加下划线
  17. su - oracle和su oracle 的区别
  18. 计算机基础知识 综述题,计算机应用的基础知识:文本表示综述及其改进
  19. 使用selenium自动秒抢淘宝商品(附详细入门指南)
  20. 计算机防火墙不能更改,win7无法更改防火墙设置提示系统报错怎么办

热门文章

  1. 主机硬件系统主板状态 vmware_电脑主机启动不了怎么办?
  2. 二项式法在负荷计算机的应用,7.5二项式法确定计算负荷
  3. python函数详解图_[宜配屋]听图阁
  4. 此计算机缺少或多个网络协议,Win10无法上网提示此计算机缺少一个或多个网络协议的四种解决方法...
  5. 数组占位符_Java基础 方法和数组
  6. c 数组上限_高级I/O复用技术:Epoll的使用及一个完整的C实例含代码
  7. VB如何根据窗口标题获得进程名称
  8. 一大波PyTorch图像分割模型来袭,俄罗斯程序员出品新model zoo
  9. 配置机器学习训练环境太麻烦?开源工具Parris说一键就搞定
  10. Task10.Bert