我已经写了打印阶梯算法。给定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的值时实现它,这样它是自包含的,从全局范围看什么也得不到 最佳答案
n
和i
是相关的,因为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/