Давайте теперь выведем на экран следующую пирамидку:
xx
xxx
xxxx
xxxxx
Приступим к решению задачи.
Для начала давайте вспомним код из предыдущих
уроков, выводящий строку 'xxxxxxxxxx'
:
let str = '';
for (let i = 0; i < 10; i++) {
str += 'x';
}
document.write(str); // выведет 'xxxxxxxxxx'
Для решения поставленной задачи на пирамидку
просто модифицируем приведенный код: при
каждом проходе цикла будем выводить на экран
содержимое переменной str
и тег <br>
:
let str = '';
for (let i = 0; i < 5; i++) {
str += 'x';
document.write(str + '<br>');
}
Так как в цикле str
постепенно растет,
то сначала выведется x
и <br>
,
потом xx
и <br>
и так далее.
Выведите на экран следующую пирамидку:
xxxx
xxxxxx
xxxxxxxx
xxxxxxxxxx
Пирамидка с цифрами
Давайте теперь выведем на экран следующую пирамидку:
222
333
444
555
666
777
888
999
Похожую задачу мы уже решали, когда выводили
строку '111222333444555666777888999'
.
Напомню этот код:
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= 3; j++) {
document.write(i); // выводит '111', потом '222', потом '333' и так далее
}
}
По сути нам нужна такая же строка, но с <br>
в нужных местах. Добавим их:
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= 3; j++) {
document.write(i);
}
document.write('<br>'); // выводим <br>, чтобы было в столбик
}
Пирамидка с цифрами
Выведем теперь следующую пирамидку:
22
333
4444
55555
666666
7777777
88888888
999999999
Задача аналогична предыдущей, только внутренний
цикл должен крутиться не 3
раза, а
в соответствии с числом: если у нас единица
- то повторяем цикл 1
раз, если двойка
- два раза, если тройка - три раза.
Как этого достичь: нужно в условии внутреннего
цикла написать следующее: j <= i
.
В этом случае если i равен 1
, то это
все равно, что в условии написать j <=
1
, а если i равен 2 - то j <= 2
и так далее:
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= i; j++) {
document.write(i);
}
document.write('<br>');
}
Я думаю, вы уже обратили внимание, что в этой пирамидке мы не используем накопление в строку, которое мы разбирали ранее. Можно и с накоплением, но это получится чуть сложнее:
for (let i = 1; i <= 9; i++) {
let str = ''; // каждый раз зачищаем строку
for (let j = 1; j <= i; j++) {
str += i;
}
document.write(str + '<br>');
}
Выведите на экран следующую пирамидку:
333
55555
7777777
999999999
Перевернутые пирамидки
Научимся теперь делать перевернутые пирамидки. Сделаем, к примеру, вот такую:
xxxx
xxx
xx
x
Для решения задачи необходимо запустить два вложенных цикла, вот так:
for (let i = 5; i >= 1; i--) {
let str = '';
for (let j = 0; j < i; j++) {
str += 'x';
}
document.write(str + '<br>');
}
Выведите на экран следующую пирамидку:
xxxxxxxx
xxxxxx
xxxx
xx
Выведите на экран следующую пирамидку:
88888888
7777777
666666
55555
4444
333
22
1