我已经写了打印阶梯算法。给定n的函数打印楼梯n层。

    var i = 1;
    function printStaircase(n) {
      //Base case
      if (n < 1) return n;
      //Recursive case
      var line = '';
      line += ' '.repeat(n - 1);
      line += '*'.repeat(i);
      console.log(line);
      i++;
      return printStaircase(n - 1);
    }

    printStaircase(10);

如您所见,我必须从外部传入i变量我想知道如何在计算函数体中i的值时实现它,这样它是自包含的,从全局范围看什么也得不到

最佳答案

ni是相关的,因为i只是n的初始值减去n+1的当前值,所以我们可以很好地捕捉到如下内容:

function printStaircase(n) {
  staircaseInternal(n);

  function staircaseInternal(curr) {
    //Base case
    if (curr < 1) return;
    //Recursive case
    var line = ' '.repeat(curr - 1);
    line += '*'.repeat((n - curr) + 1);
    console.log(line);
    staircaseInternal(curr - 1);
  }
}

printStaircase(10);

关于javascript - 计算递归函数中变量的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56533252/

10-11 05:17
查看更多