我写了这种绘制三角形的方法。例如,如果调用drawTriangle(5),将得到以下输出:
这是我的代码:-
function drawTriangle(t){
for (let i=1; i <= t; i++)
{
for (let j=1; j<=i; j++)
{
console.log(j+" ");
}
console.log("\n");
}
}
let t = 5 ;
drawTriangle(t);
我无法将它们排成一排,我不知道问题出在哪里。
答案 0 :(得分:1)
console.log()每次都会打印一行,将每一行存储在一个变量中,并在innerLoop的末尾打印
function drawTriangle(t){
for (let i=1; i <= t; i++)
{
let eachLine = ''
for (let j=1; j<=i; j++)
{
eachLine += j + " "
}
eachLine = eachLine.trim();
console.log(eachLine);
}
}
let t = 5 ;
drawTriangle(t);
答案 1 :(得分:0)
请参阅this。您可以在内部for循环中使用字符串连接。
答案 2 :(得分:0)
其他答案已经在代码中指定了您错过的内容。
如果您想查看其他解决方案,我会添加它
let n = 1;
let op = ''
while(n<=5){
op+=new Array(n).fill(0).map( (e,i) => i+1 ).join(' ') + '\n'
n++
}
console.log(op)
答案 3 :(得分:0)
这是一个线性时间复杂度的解决方案-仅console.log(draw(n))
,其中n
是一个整数,以查看结果:
function draw(n) {
let triangle = '';
let prev;
for (let i = 1; i <= n; i++) {
if (prev) {
triangle += '\n';
prev = prev + ' ' + i;
} else {
prev = i;
}
triangle += prev;
}
return triangle;
}