// 变态青蛙跳台阶
// 这只青蛙,一次可以跳 1 级台阶、2级台阶、或 n 级台阶
// 问: 这只青蛙,跳上 n 级台阶有多少种方法?
// f(n) = f(n-1) + f(n-2) + f(n) + ... + f(2) + f(1) + f(0);
function jump(n) {
if (n <= 0) return -1;
if (n == 1) return 1;
if (n == 2) return 2;
let result = 0;
for(let i = 1; i < n; i++){
result += jump(n - i);
}
return result + 1; // +1 代表从0级台阶直接跳上去的情况
}
console.log(jump(4));
算法