青蛙跳台阶问题
1.简介
青蛙跳台阶是在递归方法中经典的问题,我们来看一下问题
问题一:一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。
问题二:一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?
先看问题一:
一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。
我们先用列举法推出:
跳一个一级台阶有一种跳法,
跳一个二级台阶有两种跳法,
跳一个三级台阶有三种跳法,
跳一个四级台阶有五中跳法,
跳一个五级台阶有八种跳法
。。。
规律:
我们用java来实现一下:
class test
{
public static void main (String[] args) throws java.lang.Exception
{
System.out.println(jump(5)) ;
}
public static int jump(int n){
if(n <= 0 ){
return -1 ;
}
if( n == 1){
return 1;
}
if( n == 2){
return 2;
}
else
return jump(n - 1) + jump(n - 2);
}
}
问题二:
一只青蛙一次可以跳上1级台阶,也可以跳上2 级……它也可以跳上n 级,此时该青蛙跳上一个n级的台阶总共有多少种跳法?
同理可以得到结论:
代码表示:
import java.io.*;
class test
{
public static void main (String[] args) throws java.lang.Exception
{
//System.out.println(jump(3));
}
public static int jump(int n){
if(n == 1 || n == 0){
return 1;
}
if(n > 1){
return 2 * jump(n -1) ;
}
else
return -1;
}
}