Совершенно замечательно, как одна и та же проблема может иметь разную логику кодирования. Это простой, но довольно интересный.

Итак, это звездный узор:

Первая логика, которая приходит на ум:

Для любого заданного «n» мы используем вложенные циклы for и пробелы первой печати (n-i) (где i - номер строки). Затем печатаем (2 * i) -1 звезд. Это дает нам полный верхний треугольник.

Затем мы запускаем тот же цикл от (n-1) до 1 для нижнего треугольника (т.е. мы уменьшаем i здесь).

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

Но есть еще один интересный подход к решению этой проблемы.

Мы рассматриваем среднюю звезду как координату (0,0).

Внешний цикл выполняется от i = -n до i = + n.

Внутренний цикл выполняется от j = -n до j = + n.

Это похоже на 2D-массив. В каждом индексе, где | i | + | j | меньше или равно единице, у нас будет *, а во всех остальных индексах будут пробелы.

Код такой: