Программа для печати выкройки рыбы

Опубликовано: 21 Сентября, 2022

Для заданного целого числа N задача состоит в том, чтобы напечатать шаблон рыбы в 2N+1 рядах.

Пример:

Input: N=3
Output:
        *      
      ***    *
   *****  **
**********
   *****  **
      ***    *
        *      

Input: N=5
Output:
              *          
            ***        *
         *****      **
      *******    ***
   *********  ****
****************
   *********  ****
      *******    ***
         *****      **
            ***        *
              *     

Подход: Рыба состоит из трех частей:

  • Верхняя часть: более N рядов.
  • Средняя часть: одиночный ряд посередине
  • Нижняя часть: более N рядов

Теперь попробуем понять закономерность на примере:
Для N=3 рыба:

Теперь, чтобы решить этот вопрос, выполните следующие действия:

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

Ниже приведена реализация описанного выше подхода.


Временная сложность: O(N)
Вспомогательное пространство: O(N)

РЕКОМЕНДУЕМЫЕ СТАТЬИ