递归三:变态蛙跳台阶
/**
*题目: 变态蛙跳台阶
*描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
*解决办法: 思路:n级台阶有n级跳法,,举例说明
* 台阶的阶数:1,2,3,4,5,···
* 对应的跳法:1,2,4,8,16,···
* 1 (n=0)
* f(n) 1 (n=1)
* 2*f(n-1) ,n(n>=2)
* */
public class Three { /** * 递归写法 * */ public static int one(int n) { if(n <2 ) { return 1; } return 2*one(n-1); } /** * 非递归 * */ public static int two(int n) { int count =0; while(--n>=0) { count *=2; } return count; } /** * 第三种,每个台阶都由跳和不跳,最后一个必须跳,所以共有2*(n-1) * */ public static int three(int n) { return 1 << --n ; } }
天助自助者