递归算法----走楼梯问题(跳台阶)
/*** 案例2 分治算法 走楼梯* 一个台阶总共有n级,如果一次可以走1级,也可以一次走2级,求总共有多少种走法。* 分析:* 如果只有1级台阶,则只有一种走法,如果有2级台阶,则有2种走法:一次走1级或一次走2级* 假设有三级台阶,则可以一次走1级或一次走2级,如果一次走1级则还剩2级台阶,产生2种走法(上面已经说了),* 一次走2级则还剩1级只有一种走法,总共的走法就是2+1=3.* 3* /\*剩余级数 2 1* 走法 2 + 1 = 3* 由此可见,n>2时,走法数就是第一次走1级后剩余级数的走法数+第一次走2级后剩余级数的走法数,这正是递归*可以归纳出公式:* f(n) = 1 n=1* = 2 n=2* =f(n-1) + f(n-2) n>2* 观察公式可发现,这其实是斐波那契数列!** **/
public class zoulouti {public static void main(String[] args){int res = solution(3);System.out.println(res);}static int solution(int n){if (n==1) return 1;if (n==2) return 2;return solution(n-1) + solution(n-2);}
}
递归算法----走楼梯问题(跳台阶)相关推荐
- 算法 - 上楼梯(跳台阶)
楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,走完n阶台阶共有多少种不同的走法? 假设n阶台阶有f(n)种走法,第1步有2种走法 如果上1阶,那就还剩n - 1阶,共f(n - 1)种走法 如 ...
- 图解推导爬楼梯(跳台阶)问题详细过程
1,题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数., 2,递推公式(状态转移方程)推导 ...
- 爬楼梯/青蛙跳台阶,不会还有人不会吧
讲真的,我不会.我好菜....... 想做这道题,首先要理解递归-递归-递归-递归,然后所有问题迎刃而解了,相信我 一篇把递归安排的明明白白:https://blog.csdn.net/guoqi_6 ...
- Java小青蛙跳台街,青蛙跳台阶问题:Java版,递归算法和循环
青蛙跳台阶 青蛙跳台阶,青蛙每一次可以跳1阶或2阶,假设有n阶台阶,青蛙要跳完所有台阶,有多少种跳法? 引入斐波那契数列 对于斐波那契数列,百度百科是这么解释的: 斐波那契数列(Fibonacci s ...
- 70.青蛙跳台阶(爬楼梯)
青蛙跳台阶 1.题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 2.思路 动态规划,问题转化为斐波那契数列问题,f(0 ...
- 动态规划走楼梯_动态规划问题为什么要画表格?
❝ 本文是我的 91 算法第一期的部分讲义内容.91 算法第一期已经接近尾声,二期的具体时间关注我的公众号即可,一旦开放,会第一时间在公众号<力扣加加>通知大家. ❞ 动态规划可以理解为是 ...
- python 青蛙跳台阶问题
青蛙跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008 ...
- 动态规划入门青蛙跳台阶问题
0 题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008, ...
- 【动态规划】走楼梯问题
走楼梯问题 问题:有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶.一共有多少种走法.(和铺瓷砖问题是一样的) 暴力枚举很简单,先选择可能性,再根据排列组合公式,记录. 但是 ...
最新文章
- WPF的二维绘图(二)——几何图形Geometry
- 无需服务器的个人博客 (2018.5.22更新)
- win10 hao123劫持html文件,Win10 edge主页被hao123劫持如何解决|edge主页被hao123劫持的解决方法...
- carsim学习笔记5——carsim与simulink联合仿真
- 【深度学习】Panoptic FCN:真正End-to-End的全景分割
- Spring事物详解和传播行为
- StringBuilder的原理
- 当安全遇到大数据 “永恒之蓝”也将无所遁形!
- simulink仿真学习(实现半波整流、方波输出) day1
- c#winform演练 ktv项目 MediaPlay控件的暂停播放与停止
- java集成(支付宝)蚂蚁金服
- 【信号与系统|吴大正】5:离散信号的傅里叶变换
- 银行管理系统(一看就懂)
- h5调用手机相机和录音机_html5 调用手机摄像头以及录音的方法
- kk5.0电脑版 服务器信息,1 月 2017 累积更新 5.0.8308.984 Lync Server 2013 web 组件服务器...
- 你真的搞懂Class,class了么?
- 神武3登录显示未能成功连接服务器,T3安装成功后,点击运行显示登录界面,但提示“检测公共组件Protal。exe时未能通过,公共组件可能被破坏”,和”无法连接服务器“。应该怎么处理?求助!...
- 小型数据库系统开发作业
- 非线性回归-Polynomial regression
- 下列关于python的说法正确的是_1.??下列关于Python2.x和Python3.x的说法,正确的是()...
热门文章
- 软件性能优化最佳实践
- redis续期_redis分布式锁自动延长过期时间
- ASUS|华硕 天选4 FA507NU 锐龙版 工厂系统 带ASUS Recovery恢复功能
- Python实现桌面悬浮窗(显示网速,内存,CPU)
- java实现fcfs_JAVA从入门到精通之实现进程调度算法 FCFS
- 如何调用api接口获取其中的数据
- wordpress phpass java版本
- 复盘:一副牌(54张),三人斗地主,大小王在同一家的概率是多少
- 《数据安全法》发布后为什么数据保护官DPO变得炙手可热?
- Windows 7下arp的绑定和解除绑定