【Java】用递归的思想解决青蛙跳台阶问题
2021/9/29 22:12:56
本文主要是介绍【Java】用递归的思想解决青蛙跳台阶问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
青蛙跳台阶:一只青蛙一次可以跳上一级台阶,也可以跳上两级台阶。求该青蛙跳上一个n级台阶共有几种跳法
青蛙在跳的时候可以随机跳1下或者2下
- 但是若只有一个台阶的时候青蛙只能跳一下
F(1)=1 - 当剩下两级台阶的时候就会出现两种方式一次跳一级跳两次或者一次跳两级跳一次
F(2)=2 - 当有三级台阶的时候我们发现可以逆着思考这个问题,三级台阶不管前面跳的什么情况最后都只会有两种情况剩一个台阶或者两个,所以跳三级台阶的问题就变成了跳2(3-1)个台阶和跳1(3-2)个台阶的问题
F(3)= F(1)+ F(2) - 当有四级台阶的时候,最后剩一个或者两个,转换为跳3(4-1)级台阶和跳2(4-2)级台阶的问题
F(4)= F(2)+F(3) - 那么以此类推,当有n级台阶的时候就可以把问题转换为跳(n-1)级台阶和(n-2)级台阶的问题
F(n)=F(n-1)+F(n-2)
那么就形成一个一个递归的逻辑,递归出口就是当只有一级台阶的时候只有一种跳法,当有两级台阶的时候有两种跳法
public static int frogjump(int n){ if(n==0) //当没有台阶的时候返回0 { return 0; } if(n==1) //当只有一个台阶的时候只有一种跳法,返回1 { return 1; } if(n==2) //当只有两个台阶的时候有两种跳法,返回2 { return 2; } int count=frogjump(n-1)+frogjump(n-2); //当有n个台阶等于跳n-1和n-2两种台阶数量的方法之和 return count; } public static void main(String[] args){ //青蛙跳台阶问题 Scanner scanner=new Scanner(System.in); System.out.println("请输入共有几级台阶:"); int x=scanner.nextInt(); int result=frogjump(x); System.out.println(x+"级台阶共有"+result+"种跳法"); }
结果:
这篇关于【Java】用递归的思想解决青蛙跳台阶问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-082024年常用的情绪识别API
- 2025-01-07如何利用看板工具优化品牌内容创作与审批,确保按时发布?
- 2025-01-07百万架构师第十一课:源码分析:Spring 源码分析:Spring源码分析前篇|JavaGuide
- 2025-01-07质量检测标准严苛,这 6 款办公软件达标了吗?
- 2025-01-07提升品牌活动管理的效率:看板工具助力品牌活动日历的可视化管理
- 2025-01-07宠物商场的精准营销秘籍:揭秘看板软件的力量
- 2025-01-07“30了,资深骑手” | 程序员能有什么好出路?
- 2025-01-07宠物公园的营销秘籍:看板软件如何帮你精准触达目标客户?
- 2025-01-07从任务分解到资源优化:甘特图工具全解析
- 2025-01-07企业升级必备指南:从传统办公软件到SaaS工具的转型攻略