JZ09 剑指offer 变态跳台阶
作者:互联网
第9题 变态跳台阶
题目描述
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
class Solution {
public:
int jumpFloorII(int n) {
if (n == 0 || n == 1) return 1;
return pow(2, n-1);
}
};
对于n级台阶,最后一步可能的跳的台阶数为1,2,……,n,所以前一阶台阶可能为n-1,n-2,……,0,所以有:
F
[
n
]
=
F
[
n
−
1
]
+
F
[
n
−
2
]
+
.
.
.
+
F
[
0
]
F[n]=F[n-1]+F[n-2]+...+F[0]
F[n]=F[n−1]+F[n−2]+...+F[0]
而对于n-1级台阶:
F
[
n
−
1
]
=
F
[
n
−
2
]
+
F
[
n
−
3
]
+
.
.
.
+
F
[
0
]
F[n-1]=F[n-2]+F[n-3]+...+F[0]
F[n−1]=F[n−2]+F[n−3]+...+F[0]
所以:
F
[
n
]
=
2
F
[
n
−
1
]
F[n]=2F[n-1]
F[n]=2F[n−1]
以此类推:
F
[
n
]
=
2
n
−
1
F
[
1
]
=
2
n
−
1
F[n]=2^{n-1}F[1] =2^{n-1}
F[n]=2n−1F[1]=2n−1
标签:台阶,offer,int,JZ09,变态,跳上,2F,return,+...+ 来源: https://blog.csdn.net/KazeHelloWorld/article/details/111899078