如何 return JavaScript 中的 1 2 3 4 5 ... 模式但以下数字在新行开始?
How to return a 1 2 3 4 5 ... pattern in JavaScript but with the following number starting on a new line?
预期输出:
1
2 3
4 5 6
7 8 9 10
...
我尝试过的方法(以及许多其他无效的方法):
let line = "";
for (let i = 1; i <= 10; i++) {
line = line + " " + i;
console.log(line);
}
我得到的:
1
1 2
1 2 3
1 2 3 4
...
这是更接近预期结果的结果,但我不知道如何使用以下数字而不是 1 开始每一行。
谢谢!
您可以使用 Gauss sum formula for triangular number,其中从 1
到 n
的所有数字都是
n * (n + 1) / 2
作为每行的最大值并进行嵌套循环。
let lines = 10,
value = 1;
for (let i = 1; i <= lines; i++) {
let line = '',
l = (i * (i + 1)) / 2;
while (value <= l) line += (line && ' ') + value++;
console.log(line);
}
.as-console-wrapper { max-height: 100% !important; top: 0; }
预期输出:
1
2 3
4 5 6
7 8 9 10
...
我尝试过的方法(以及许多其他无效的方法):
let line = "";
for (let i = 1; i <= 10; i++) {
line = line + " " + i;
console.log(line);
}
我得到的:
1
1 2
1 2 3
1 2 3 4
...
这是更接近预期结果的结果,但我不知道如何使用以下数字而不是 1 开始每一行。
谢谢!
您可以使用 Gauss sum formula for triangular number,其中从 1
到 n
的所有数字都是
n * (n + 1) / 2
作为每行的最大值并进行嵌套循环。
let lines = 10,
value = 1;
for (let i = 1; i <= lines; i++) {
let line = '',
l = (i * (i + 1)) / 2;
while (value <= l) line += (line && ' ') + value++;
console.log(line);
}
.as-console-wrapper { max-height: 100% !important; top: 0; }