一个青蛙,一次只能跳一级台阶,或者跳两级台阶,或者跳n级台阶。当青蛙跳上第n级台阶,一共有多少种跳法。

解析

这个问题,利用前面青蛙跳台阶笔记中的推算法,之前那个只能跳一级台阶或两级台阶,而现在是这只青蛙一次可以跳n级台阶,这不就是将二叉树转化为多叉树吗,把多叉树的深度相加不就是结果所需要的多少种跳法。

实现代码

  1. function jump(n) {
  2. if( n <= 0 ) return -1;
  3. if ( n === 1 ) return 1;
  4. if ( n === 2 ) return 2;
  5. let num = 0;
  6. for (let i = 1; i <= n; i++) {
  7. num += jump(n - i );
  8. }
  9. return num;
  10. }
  11. console.log(jump(4))