跳跃训练

今天的有氧运动训练内容是在一个长条形的平台上跳跃。平台有 num 个小格子,每次可以选择跳 一个格子 或者 两个格子。请返回在训练过程中,学员们共有多少种不同的跳跃方式。
结果可能过大,因此结果需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

  • 输入:n = 2
    输出:2

  • 输入:n = 5
    输出:8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var trainWays = function(num) {
if (n < 2) return 1
let p = 1
let q = 1
let res = 2

for(let i = 2; i<n;i++){
// 每一次多加一步,前面的种类都不会变,因为新加的都是一步走了就行
// 那么只需要考虑最后一步是2步的情况,那么前面n-2的步数种类我也是知道的
// 那么n的种类就是fn(n - 2) + fn(n - 1)的种类
p = q
q = res
res = (p + q) % 1000000007
}


return res
};