Распечатать зеркальный номер треугольника в JS - PullRequest
0 голосов
/ 02 ноября 2018

Мне нужно создать программу-скрипт java, которая печатает треугольник зеркальных чисел из N. Я протестировал несколько способов и получил 50% от задачи:

let n = 5;
function generatePyramid(num) {
    let number = '';

    for (let i = 1; i <= num; i += 1) {
        console.log(number += i);
    }
}
generatePyramid(n);

Этот код печатает треугольник только от 1 до 5. Как печатать треугольник от 5 до 1?

Кроме того, мой отпечаток должен быть с пробелом между 1 2 3 4 5 ... не 12345.

У меня есть похожий код из Java с массивом, но я не могу преобразовать его в JS: https://pastebin.com/9dqqE8J6

Это окончательный вывод:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018
<script>
let n = 5;
function generatePyramid(num) {
    let number = '';

    for (let i = 1; i <= num; i += 1) {
    for (let j = 1; j <= i; j += 1) 
        document.writeln(j+" ");
        document.writeln("<br>")
    }

for (let i = 4; i >= 1; i -= 1) {
    for (let j = 1; j <= i; j += 1) 
        document.writeln(j+" ");
        document.writeln("<br>")
    }

}
generatePyramid(n);
</script>

Попробуйте использовать тот же код, но я взял другой цикл с именем j

0 голосов
/ 02 ноября 2018

Один из вариантов - добавить цикл while, который вырезает символы из строки number до тех пор, пока она не станет пустой:

let n = 5;
function generatePyramid(num) {
    let number = '';
    for (let i = 1; i <= num; i += 1) {
        console.log(number += i);
    }
    while (number.length > 1) {
      number = number.slice(0, number.length - 1);
      console.log(number);
    }
}
generatePyramid(n);

Чтобы добавить пробелы, один из вариантов:

let n = 5;
const log = str => console.log(str.replace(/.(?!$)/g, '$& '))
function generatePyramid(num) {
    let number = '';
    for (let i = 1; i <= num; i += 1) {
        log(number += i);
    }
    while (number.length > 1) {
      number = number.slice(0, number.length - 1);
      log(number);
    }
}
generatePyramid(n);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...