一个青蛙,一次只能跳一级台阶,或者跳两级台阶,或者跳n级台阶。当青蛙跳上第n级台阶,一共有多少种跳法。
解析
这个问题,利用前面青蛙跳台阶笔记中的推算法,之前那个只能跳一级台阶或两级台阶,而现在是这只青蛙一次可以跳n级台阶,这不就是将二叉树转化为多叉树吗,把多叉树的深度相加不就是结果所需要的多少种跳法。
实现代码
function jump(n) {
if( n <= 0 ) return -1;
if ( n === 1 ) return 1;
if ( n === 2 ) return 2;
let num = 0;
for (let i = 1; i <= n; i++) {
num += jump(n - i );
}
return num;
}
console.log(jump(4))