10个台阶,每次只能上1个或者2个,一共有多少种走法
思路来得太慢,好想拿小锤锤捶自己哟~~~
第一种,递归思路。
如果你上10个台阶,可以分解成下面两种情况:
● 上9个台阶,最后上1个台阶。假设这种情况下,上前面9个台阶的方法数为m。
● 上8个台阶,最后上2个台阶。假设这种情况下,上前面8个台阶的方法数为n。
所以,上10个台阶的方法数,其实就是 m + n。
可以递归为:
f(n) = f(n - 1) + f(n - 2), n > 2
f(n) = 2 , n = 2
f(n) = 1 , n = 1
private static int step(int n) {if (n == 1) return 1;if (n == 2) return 2;else return step(n - 1) + step(n - 2);}
第二种,排列思路。
10个台阶,全部都走两步的话,无非就是5个两步。
● 全是一步,10个一步。1种。
● 1个两步,8个一步。相当于从9个坑里放1个两步。9C1 = 9种。
● 2个两步,6个一步。相当于从8个坑里放2个两步。8C2 = 28种。
● 3个两步,4个一步。相当于从7个坑里放3个两步。7C3 = 35种。
● 4个两步,2个一步。相当于从6个坑里放4个两步。6C4 = 15种。
● 5个两步。1种。
所以一共有:1 + 9 + 28 + 35 + 15 + 1 = 89种。
10个台阶,每次只能上1个或者2个,一共有多少种走法相关推荐
- n个台阶,每次只能走一步或者两步,求多少种走法
最重要的就是最后一步:如果走一步就需要f(n-1)种,如果走两步就需要f(n-2)种 走一个台阶:1种-f(1) 走两个台阶:2种-f(2) 三个台阶:先走一个台阶f1和最后一次走两个台阶:f(1)先 ...
- 编程题-有n步台阶一次只能上1步或2步共有多少种走法
问题: 有n步台阶,一次只能上1步或2步,请共有多少种走法,请使用编程实现. 编程题实现: 方法1-递归 //实现f(n):求n步台阶,一共有几种走法public int f(int n){if(n& ...
- 算法! 有n步台阶,一次只能上1步或2步,共有多少种走法
有2种算法, 递归和循环迭代, 依次介绍并比较 1.递归 1步台阶, 一种走法, 即f(1)=1; 2步台阶, 2种走法, 一步加一步或是直接跨两步, 即f(2)=2 3步台阶, 最后一次要么跨1步, ...
- 详细解答【算法题】9个台阶,每次只能上1个或者2个,一共有多少种走法?
前言 看到这道题感觉还挺有意思的,自己第一时间并没有想出来,是看了类似博文后才豁然开朗,但是我看到的博文中都没有将下面这个数列的来龙去脉说明清楚, f ( n ) = f ( n − 1 ) + f ...
- 走台阶一共有多少种走法
可以走1台阶 2台阶 3台阶 long long MoveStairs(int total){if (total < 4) {return total == 3 ? 4 : total;}int ...
- 有N个台阶,可以走两步也可以走一步 一共有多少种走法
递归的思想: 走1步则还剩余n-1个台阶, 走2步则还剩余n-2个台阶. 分别接着去求出n-1和n-2个台阶的走法. public int CountNumber(int n){ if(n<1) ...
- C语言题目地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m3),有多少种走法
地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m>3),有多少种走法 要想到达m,则前一个应该是m - 1或者 ...
- 有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。
/* * 有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法. 分析: 动态规划的实现的关键在于能不能准确合理的 用动态规划表来抽象出实际问题.在这个问题上,我们让f(n)表 ...
- N级台阶,一次上1级或2级或3级或M级,总共有多少种走法
思路 先分析最简单的,也就是每次要不上1级,要么上2级. 这个问题需要反过来思考才能比较容易的找到规律.总共有N级台阶,因为每次要么上1级要么上2级,因此对于第N级台阶来说,它的前一步要么是在N-1级 ...
最新文章
- 人要懂得放下已经发生,却又无法改变的事情
- 编程模拟洗牌和发牌过程c语言,洗牌发牌模拟系统课程设计报告.doc
- 如何开发一个区块链应用程序
- 「每周论文推荐」 初入深度学习CV领域必读的几篇文章
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(1):Mybatis和Hibernate概念理解...
- 自学php心得体会,php5 学习心得
- Exchange2003-2010迁移系列之六,配置及配置第二台Exchange CAS/HUB服务器
- 【Android 启动过程】Activity 启动源码分析 ( Activity -> AMS、主线程阶段 )
- openssh 7.4 java使用_openssh/openssl升级到7.4和1.0.2j 源码方式
- 阿里巴巴java开发手册学习
- 2018常见的java面试题_2018新版Java常见面试题
- S4 exercise -- 模块
- Linux进程+进程间通信IPC
- Juypter 代码自动补全
- 全网首发Oreo易支付开源+教程
- opencv 伽马变换
- B站赴美上市;刘炽平减持100万股腾讯股份;《花花公子》删除官方Facebook账户丨价值早报
- ERROR: [Synth 8-439] module ‘xxx‘ not found not found 错误解决办法
- 古典密码(单表密码,维吉尼亚密码,普莱费尔密码,一次一密)
- 海思芯片-Hi3512参数规格介绍