Por favor, estoy tratando de imprimir un rectángulo hueco de acuerdo con la longitud y el ancho que el usuario le da al comando, pero parece que no puedo entender cómo puedo lograrlo. He intentado tantas iteraciones de mi código a continuación sin archivar el resultado requerido. A continuación se muestra el código:
function printRectangle(rows, cols) { let i, j; for (i = 0; i <= rows; i++) { for (j = 0; j <= cols; j++) { if (i < 2 || i === rows || j < 2 || j <= cols - 15) { process.stdout.write('*'); } else { if (i < 2 || i === rows || j === 2 || j <= cols - 5) { process.stdout.write(' '); } // process.stdout.write(' '); } } process.stdout.write('*****\n'); } } // user imputs let rows = 10, columns = 30; printRectangle(rows, columns);Lo estoy imprimiendo en la línea de comando usando node.js. a continuación se muestra el resultado deseado y lo que he estado obteniendo: El resultado deseado que debo imprimir
function printRectangle(rows, cols) { let i, j; for (i = 0; i <= rows; i++) { for (j = 0; j <= cols; j++) { if (i < 2 || i === rows || j < 2 || j <= cols - 15) { process.stdout.write('*'); } else { if (i < 2 || i === rows || j === 2 || j <= cols - 5) { process.stdout.write(' '); } // process.stdout.write(' '); } } process.stdout.write('*****\n'); } } // user imputs let rows = 10, columns = 30; printRectangle(rows, columns);Esto funcionaría. console.log para que puedas ver la demostración.
const spaceWidth = 21; const spaceHeight = 3; function printRectangle(rows, cols) { let result = ''; const borderWidth = (cols - spaceWidth) / 2; const borderHeight = (rows - spaceHeight) / 2; for (let i = 0; i < rows; i++) { for (let j = 0; j < cols; j++) { const rowIsBorder = i < borderHeight || i >= borderHeight + spaceHeight; const colIsBorder = j < borderWidth || j >= borderWidth + spaceWidth; result += rowIsBorder || colIsBorder ? '*' : ' '; } result += '\n'; } console.log(result); } printRectangle(9, 31);