题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解法一:举例总结规律
解法二:数学逻辑
(1) S(n)=S(n-1)+S(n-2)+…+S(0);
(2) S(n-1)=S(n-2)+S(n-3)+…+S(0);
(1) + (2) ==>S(n)=2*S(n-1);
数学逻辑证明规律的存在,接下来就看代码,可以采用递归法,也可以使用数学的pow函数来做
class Solution {
public:
int jumpFloorII(int number) {
if (number == 0)
{
return 0;
} else if (number == 1)
{
return 1;
}
return 2 * jumpFloorII(number - 1);
}
};