黑马程序员技术交流社区
标题:
青蛙跳台阶,跳n个台阶有多少种跳法(递归方法+Scanner)
[打印本页]
作者:
倒骑驴走着瞧
时间:
2015-4-5 12:13
标题:
青蛙跳台阶,跳n个台阶有多少种跳法(递归方法+Scanner)
本帖最后由 倒骑驴走着瞧 于 2015-4-5 12:16 编辑
import java.util.Scanner;
class JumpStep
{
//青蛙跳台阶,跳n个台阶有多少种跳法(一次可以跳1阶或者2阶)
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
int n = 0;
while(true){
System.out.print("请输入台阶数:");
n = s.nextInt();
int jumpNum = jump(n);
if(jumpNum==-1){
System.out.println("输入台阶数不合法");
}else{
System.out.println("跳"+n+"阶有"+jumpNum+"种跳法");
}
}
/*
一次可跳1台阶或者2台阶
台阶总数1-->jump(1)=1
台阶总数2-->jump(2)=2
台阶总数3-->jump(3)=3
台阶总数4-->jump(4)=5
台阶总数5-->jump(5)=8
分析结果发现:台阶数大于等于3时,jump(n)=jump(n-1)+jump(n-2);//n>=3
*/
}
public static int jump(int n){
if(n==1){
return 1;
}else if(n==2){
return 2;
}else if(n>=3){
return jump(n-1)+jump(n-2);
}else{
return -1;
}
}
}
作者:
tu3
时间:
2015-4-5 12:17
不明觉厉
作者:
随缘就好
时间:
2015-4-5 12:41
加个异常判断就可以输入所有了
作者:
One_M
时间:
2015-4-5 14:43
Switch...不是也行?
作者:
倒骑驴走着瞧
时间:
2015-4-5 15:24
import java.util.Scanner;
class JumpStep
{
//青蛙跳台阶,跳n个台阶有多少种跳法
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
int n = 0;
while(true)
{
System.out.print("请输入台阶数:");
try
{
n = s.nextInt();
}
catch (Exception e)
{
System.out.println("输入台阶数不合法");
s.nextLine(); //清除缓存
continue;
}
long jumpNum = jump(n);
if(jumpNum==-1){
System.out.println("输入台阶数不合法");
}else{
System.out.println("跳"+n+"阶有"+jumpNum+"种跳法");
}
}
/*
一次可跳1台阶或者2台阶
台阶总数1-->jump(1)=1
台阶总数2-->jump(2)=2
台阶总数3-->jump(3)=3
台阶总数4-->jump(4)=5
台阶总数5-->jump(5)=8
分析结果发现:台阶数大于等于3时,jump(n)=jump(n-1)+jump(n-2);//n>=3
*/
}
public static long jump(int n){
if(n==1){
return 1;
}else if(n==2){
return 2;
}else if(n>=3){
return jump(n-1)+jump(n-2);
}else{
return -1;
}
}
}
//添加异常捕获,并且可以无限输入
作者:
Sylvanas
时间:
2015-4-5 17:11
我还真没发现居然是个斐波那契数列,好巧哦
作者:
大神在何方
时间:
2015-4-5 23:40
刚学没多久这个~
作者:
倒骑驴走着瞧
时间:
2015-4-6 22:13
大神在何方 发表于 2015-4-5 23:40
刚学没多久这个~
是啊,基础的
作者:
倒骑驴走着瞧
时间:
2015-4-6 22:14
Sylvanas 发表于 2015-4-5 17:11
我还真没发现居然是个斐波那契数列,好巧哦
恩,好多得用递归
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2