题目:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
设到第n阶跳法为f(n)由于在到达n阶之前,可能在第 0 ~(n-1)阶,而每一阶都有跳法f(0)…f(n-1),所以f(n)=f(n-1)+…+f(0)同理f(n-1)=f(n-2)+…+f(0),两式相减得到f(n)=2f(n-1)又由于f(1)=1,我们可以列出从1到5阶的跳法,分别是1,2,4,8,16,通过数学归纳法可以得到f(n)=2^(n-1)
代码:
public class Solution {
public int JumpFloorII(int target
) {
return (int)(Math
.pow(2, target
-1));
}
}