变态跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
题目解析
分析这个题目,我们判定肯定是斐波那契数列的变形,我们不妨开始找规律
1个台阶----》1种方法
2个台阶----》2种方法
3个台阶----》4种方法
4个台阶----》8种方法
5个台阶---->16种方法
…
以此类推,我们发现了规律,方法数=2的(台阶数-1)次方
所以我们就可以编写出代码如下所示;
public int JumpFloorII(int target) {
//当台阶数小于1时,返回0
if(target<1){
return 0;
}
//当有大于1的台阶数时,利用总结出来的规律方法数=2的(台阶数-1)次方
int p = power(2,(target-1));
return p;
}
//该方法主要为了完成次方求解功能
public static int power(int n,int m) {
int s=1;
for(int j=1;j<=m;j++) {
s=s*n;
}
return s;
}
}