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