制作一个程序,输出一种线条模式,其宽度和高度基于输入中的数字

Make a program that outputs a pattern of lines whose width and height is based on the number in the input

我想设计一个程序,输入一个正整数,用XX个字符输出一个n行的数字,每行k有k对XX。

例如,如果输入为 5,则输出为:

XX
XX XX
XX XX XX
XX XX XX XX
XX XX XX XX XX

如果输入为 3,则输出为:

XX
XX XX
XX XX XX

我尝试过的:

   
function figure() {

 
  var outputObj = document.getElementById("output");
  outputObj.style.fontSize = "11px";
  outputObj.style.textAlign = "left";

   
  var n = parseInt(prompt("Please enter a number: ", ""));

  for (var x = 1; x <= n; x = x + 1) {
    outputObj.innerHTML += "XX";

    for (var k = 1; k <= n; k = k + 1) {
      outputObj.innerHTML = "<br>";
    }
  }

 
  outputObj.innerHTML = outputObj.innerHTML + "<br><br>" + "program ended";
  document.getElementsByTagName("button")[0].setAttribute("disabled", "true");
}

figure();
<button>Click Me</button>
<div id="output"></div>

谢谢。

你不是在一百万英里之外。循环只需要调整,以便它们更加相互依赖。

具体来说,您需要每行输出正确的 XX 数量,而不是每次只输出一个 - 根据您的要求使用 k 来确定。并且仅当打印的 XX 数等于当前行号时才应换行(即当 kx 相同时)。

演示:

function figure() {
  var outputObj = document.getElementById("output");
  var n = parseInt(prompt("Please enter a number: ", ""));

  for (var x = 1; x <= n; x++) {
    for (var k = 1; k <= x; k++) {
      outputObj.innerHTML += "XX ";
      if (k == x) outputObj.innerHTML += "<br>";

    }
  }

  outputObj.innerHTML = outputObj.innerHTML + "<br><br>" + "program ended";
}

figure();
<div id="output"></div>