倒置三角形,使用一表示循环



我正在尝试使用一个for循环打印一个倒置的直角三角形,而不使用"\n〃。这是我的代码:

function triangle(num) {
triangleStr = "";
for (let i = num; i > 0; i--) 
{
triangleStr += "#";
console.log(triangleStr);
}
}
triangle(5);

1(您可以创建一个倒置的直角三角形,如下所示:

triangleStr = Array(i).fill("#").join("");

function triangle(num) {
triangleStr = "";
for (let i = num; i > 0; i--) {
triangleStr = Array(i).fill("#").join("");
console.log(triangleStr);
}
}
triangle(5);

2(您也可以使用递归实现以下结果:

function triangle(num) {
if (num === 0) return;
console.log(Array(num).fill("#").join(""));
triangle(num - 1);
}
triangle(5);

3(仅使用递归

function triangle(start, end) {
if (start > end) return;
triangle(start + 1, end);
console.log(Array(start).fill("#").join(""));
}
triangle(1, 5);


编辑:感谢TAHERElMehdi建议使用repeat作为的解决方案

您可以更换以上所有

Array(i).fill("#").join("");

带有

"#".repeat(i)

您的代码很好,只需去掉triangleStr,并在for-loop中用方法repeat替换它。

function triangle(num) {
for (let i = num; i > 0; i--) 
{
console.log("#".repeat(i));
}
}
triangle(5);

结果

#####
####
###
##
#

最新更新