Java青蛙跳台阶问题的解决思路与代码
时间:2021-08-16 09:21:36|栏目:JAVA代码|点击: 次
问题描述
一只青蛙一次可以跳上1级台阶,也可以一次跳上2级台阶,请问跳上n级台阶,该请娃一共有多少种跳法?
解决思路
①如果只有1级台阶,那显然只有一种跳法。
②如果有2级台阶,那么就有2种跳法,一种是分2次跳。每次跳1级,另一种就是一次跳2级。
③如果台阶级数大于2,设为n的话,这时我们把n级台阶时的跳法看成n的函数,记为,第一次跳的时候有2种不同的选择:一是第一次跳一级,此时跳法的数目等于后面剩下的n-1级台阶的跳法数目,即为,二是第一次跳二级,此时跳法的数目等于后面剩下的n-2级台阶的跳法数目,即为,因此n级台阶的不同跳法的总数为,不难看出就是斐波那契数列。

实现代码
1.青蛙跳台阶递归方法
public static int f1(int n){
if(n==1||n==2){
return n;
}
else{
return f1(n-1)+f1(n-2);
}
}
2.青蛙跳台阶非递归方法
public static int f2(int m){
if(m==1||m==2){
return m;
}
int a1 = 1;
int a2 = 2;
int result = 0;
for (int i = 3; i <= m; i++) {
result = a1 + a2;
a1 = a2;
a2 = result;
}
return result;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println("递归青蛙跳"+num+"级台阶共有"+f1(num)+"种方法!");
System.out.println("非递归青蛙跳"+num+"级台阶共有"+f2(num)+"种方法!");
}
运行结果:

总结
上一篇:Java基础类Class使用指南
栏 目:JAVA代码
下一篇:SpringMVC Mock测试实现原理及实现过程详解
本文标题:Java青蛙跳台阶问题的解决思路与代码
本文地址:http://www.codeinn.net/misctech/167330.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




