Программа для печати выкройки рыбы
Опубликовано: 21 Сентября, 2022
Для заданного целого числа N задача состоит в том, чтобы напечатать шаблон рыбы в 2N+1 рядах.
Пример:
Input: N=3
Output:
*
*** *
***** **
**********
***** **
*** *
*Input: N=5
Output:
*
*** *
***** **
******* ***
********* ****
****************
********* ****
******* ***
***** **
*** *
*
Подход: Рыба состоит из трех частей:
- Верхняя часть: более N рядов.
- Средняя часть: одиночный ряд посередине
- Нижняя часть: более N рядов
Теперь попробуем понять закономерность на примере:
Для N=3 рыба:

Теперь, чтобы решить этот вопрос, выполните следующие действия:
- Сначала создайте верхнюю часть:
- Запустите цикл от i=0 до i<N и на каждой итерации цикла:
- Как показано на изображении выше, сначала появляется строка, скажем, пробелов1 , имеющая M (изначально M=N ) пробелов, затем слой звезд, скажем, звезд1 , имеющий только 1 звезду, затем строка пробелов1 появляется 2 раза (имея 2*M пробелы), а затем еще один слой звезд, скажем, звезды2 , изначально имеющие 0 звезд.
- Теперь в каждой итерации пробелы1 уменьшались на пробел, звезды1 увеличивались на 2 звезды, а звезды2 — на 1 звезду.
- Запустите цикл от i=0 до i<N и на каждой итерации цикла:
- Для средней части просто напечатайте как stars1 , так и stars2 , так как в этой строке нет пробелов.
- Теперь, чтобы получить нижнюю часть, повторите алгоритм для верхней части.
- После того, как петля закончится, будет создан узор рыбы.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N)
Вспомогательное пространство: O(N)