您的位置:首页 > Web前端

剑指Offer [09] 变态跳台阶

2017-08-21 20:29 281 查看
变态跳台阶 : 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级……它也可以跳上 n 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

思路:

数学归纳法:第 n 次的结果等于前一次跳 1 阶加上 跳 2 阶 …等的和,参考上一篇博文

f(n) = f(n-1)+ f(n-2)+…+ f(2)+ f(1)

f(n-1) = f(n-2)+…+ f(2)+ f(1)

故 f(n) = 2 f(n-1)

package A09变态跳台阶;

import javax.swing.SpinnerDateModel;

public class Solution {

public int JumpFloorII(int target) {
if (target <= 0) {
return 0;
}
if (target == 1) {
return 1;
}
int result = 1;
while(--target > 0){
result *= 2;
}
return result;
}

public static void main(String[] args) {
Solution solution = new Solution();
System.out.println(solution.JumpFloorII(3));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息