Каков алгоритм для числовой лестницы - PullRequest
0 голосов
/ 15 января 2020

Я хотел бы создать алгоритм, чтобы сделать числовую лестницу, начинающуюся сверху, от 1

, это выглядело бы примерно так:

1
2 3
4 5 6
7 8 9 10

Что было бы хорошей идеей для начала?

Спасибо!

1 Ответ

0 голосов
/ 15 января 2020
1 ---> 1
2 3 ---> 2
4 5 6 ---> 3
7 8 9 10 ----> 4
  • Если вы заметили выше, каждая строка имеет столько чисел. Например, строка № 1 имеет 1 элемент, строка № 2 имеет 2 элемента и так далее.

  • Таким образом, вы можете запустить al oop для количества строк и внутри него, еще один l oop для такого количества строк.

  • Что касается чисел в нем, у вас может быть простой указатель, который продолжает увеличиваться независимо от номера строки.

Фрагмент:

<?php

$number = 1;

for($line_no = 1;$line_no <= 5; ++$line_no){
    for($line_no_times = 1;$line_no_times <= $line_no; ++$line_no_times){
        echo $number++," ";
    }

    echo PHP_EOL; // new line
}

Демонстрация: https://3v4l.org/mYHJS

Обновление:

Как подсказывает @ HashBrown в комментариях, вы можете вести подсчет количества напечатанных чисел в определенной строке. Если число соответствует номеру строки, просто выведите новую строку.

Фрагмент:

<?php

$number = 1;
$count = 0;
$row = 1;
while($row < 6){
    echo $number++, " ";
    $count++;
    if($row == $count){
        $count = 0;
        $row++;
        echo PHP_EOL; // new line
    }
}

Демонстрация: https://3v4l.org/LXFQs

И если вы умны, он предложил по модулю, который вы можете использовать, чтобы иметь не только один l oop, но и одну переменную с одним приращением на l oop:
Демо из 9 строк, javascript или php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...