变态跳台阶(递归算法)
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
台阶的级数:1,2,3,4,5,6.....
对应的跳法:1,2,4,8,16,32....
最终结论 在n阶台阶,一次有1、2、...n阶的跳的方式时,总得跳法为:
| 1 ,(n=0 ) f(n) = | 1 ,(n=1 ) | 2*f(n-1) ,(n>=2)
package bianchengti; /* * 变态跳台阶 * 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。 * 求该青蛙跳上一个n级的台阶总共有多少种跳法。 * 递归算法 */ public class HighFrogJump { public static int JumpFloorII(int target) { if(target < 0){ return -1; }else if(target == 0 || target == 1){ return 1; }else{ return 2*JumpFloorII(target-1); } } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(JumpFloorII(5));//16 } }
追梦的脚步,永不停息