一只青蛙一次可以跳上1級(jí)臺(tái)階先蒋,也可以跳上2級(jí)……它也可以跳上n級(jí)橄仍。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法诬垂。
public class Solution {
public int JumpFloorII(int target) {
return 1<<(target-1);
}
}
可以求出通項(xiàng)公式:2^(target-1)
- 方法1:
target = 1绣溜; return 1;
target = 2娄蔼;return 2怖喻;
target = 3; 如果跳上第一級(jí)臺(tái)階岁诉,剩下還有兩級(jí)臺(tái)階 target = 2 種跳法锚沸;如果不跳上第一級(jí)臺(tái)階,需要從地上跳第二三級(jí)臺(tái)階涕癣,還是 target = 2 種跳法哗蜈; return 2*(target=2);
target = 4坠韩; 如果跳上第一級(jí)臺(tái)階距潘,剩下還有三級(jí)臺(tái)階 target = 3 種跳法;如果不跳上第一級(jí)臺(tái)階只搁,需要從地上跳第二三四級(jí)臺(tái)階音比,還是 target = 4 種跳法; return 2*(target=3)氢惋;··· - 方法2:
對(duì)于1~target-1級(jí)臺(tái)階洞翩,可跳可不跳稽犁,target臺(tái)階必須跳,所以2^(target-1)種情況骚亿。 - 方法3:
target = 0已亥; return 1;
target = 1来屠; return 1虑椎;
target = 2; return 從0-2一步和從1-2一步的妖;2
target = 3绣檬; return 從0-3一步,從1-3一步嫂粟,從2-3一步娇未;4
target = 4;1 1 2 4 = 8星虹;
target = 5零抬;1 1 2 4 8 = 16;···