青蛙跳台阶问题,说的是一个青蛙一次可以跳一个台阶或两个台阶,问我们最终跳到n台阶时共有多少种可能性?
我们先考虑这个问题的结束条件,即最后只剩下1个或2个台阶时,递归可以结束。
青蛙一次可以跳1台阶或2台阶,则总共有台阶n的可能性 可以由每次-1和-2的可能性函数关系列出,即f(n) = f(n - 1) + f(n -2);
import java.util.Scanner;
public class FrogJump {
public static int frogJump(int n){
if(n <= 0){
return 0;
}else if(n == 1){
return 1;
}else if(n == 2){
return 2;
}
return frogJump(n - 1) + frogJump(n - 2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入青蛙跳几级台阶:");
int n = scan.nextInt();
System.out.println("青蛙共有"+ frogJump(n) + "种跳法");
}
}
变态青蛙。。。
public class Solution {
public int JumpFloorII(int target) {
if(target <= 0)
return -1;
else if(target == 1)
return 1;
else
return 2 * JumpFloorII(target - 1);
}
}