我有这个功能,它以三角形的方式打印从1到n的数字
function printNumbers(n){
var result = "";
var counter = 1;
while (counter <= n) {
result += counter;
console.log(result);
counter = counter + 1;
}
}
console.log(printNumbers(4));
结果如下所示
1
12
123
1234
我需要使用递归来指示如何使用递归,因为我是编程的新手,我不知道如何做到这一点。
答案 0 :(得分:3)
基本思路就是使用最后一个结果来构建新结果:
function printNumbers(n){
var result;
if(n <= 1)
result = '1';
else
result = printNumbers(n-1) + n;
console.log(result);
return result;
}
您也可以使用三元运算符很好地分配给变量:
function printNumbers(n){
var result = n <= 1 ? '1' : printNumbers(n-1) + n;
console.log(result);
return result;
}
答案 1 :(得分:0)
function printNumbers(n, counter, result){
counter = counter || 0;
result = result || "";
if (counter >= n) return result;
return printNumbers(n, ++counter, result+""+counter);
}
alert(printNumbers(10));
答案 2 :(得分:0)
Function doCounter(counter, I, n)
{
If(I>n) {
Console.log(counter);
doCount(counter+I, I++, n);
}
}
doCounter(1,0,4);
答案 3 :(得分:0)
您可以尝试这样的事情:
function Recursion(n) {
if (n <= 9) // to prevent infinite loop
{
var s = '';
for (var i = 1; i < n; i++)
{
s += i; // concatenate until n
}
console.log(s); // print the generated number
return Recursion(n + 1); // increase n and recall Recursion
}
};
Recursion(1);
答案 4 :(得分:0)
function oneToN(n) {
if (n == 0) {
console.log(n);
return n;
} else {
oneToN(--n);
console.log(n + 1);
}
}
oneToN(5);