top of page
Поиск

CodinGame | May the Triforce be with you | C++

  • Bezukh
  • 18 июн. 2019 г.
  • 2 мин. чтения

Обновлено: 29 сент. 2024 г.

Приветствую! Задач на #ascii_art довольно много. Это одна из них.

Описание задачи: Необходимо создать программу для заданного размера N.

  • Призма состоит из 3 одинаковых треугольников;

  • Каждый треугольник состоит из N линий;

  • Первая линия треугольника начинается с 1 звезды, каждая последующая строка на 2 звезды длиннее предыдущей;

  • В левом верхнем углу нужно расположить точку.


Примеры:

Призма размера 3 будет выглядеть так:

.    *
    ***
   *****
  *     *
 ***   ***
***** *****

Призма размера 5 будет выглядеть так:

.        *
        ***
       *****
      *******
     *********
    *         *
   ***       ***
  *****     *****
 *******   *******
********* *********

Входные данные: Строка: натуральное число N — размер треугольника призмы.

Выходные данные: Призма.


Решение May the Triforce be with you на С++:


Для начала следует исследовать рисунок на различные закономерности. Обратим внимание, что количество пробелов в первой линии равно 2 * (SIZE - 1) и с каждой последующей итерацией уменьшается на единицу (если не учитывать пробел под точкой). Также мы можем заметить, что количество звёздочек равно 2 * i + 1.


Для начала попытаемся нарисовать верхний треугольник по линиям. С помощью конструктора класса string нарисуем точку на первой линии. Как это работает? Первое число в конструкторе задаёт длину строки. Логический оператор вернёт единицу или ноль. Всё просто.


Вывод в консоль можно осуществлять с помощью конкатенации строк. Теперь создадим строку, состоящую из пробелов. От общего количества пробелов на первой строке отнимем номер строки (считаем с нуля) и прибавим единицу, если нужен пробел вместо точки.


Выведем звёздочки и перейдём на новую строку.


Аналогично по кусочкам нарисуем два нижних треугольника. Обратите внимание, что в случае, если нам не нужны различные методы и функции для работы с классом string, подключение библиотеки <string> не является обязательным (на самом деле многое зависит от версии компилятора и языка).


Итоговый код:


Послесловие:

Порешать задачи по программированию можно на CodinGame. -- © Bezukh Vladimir, 2019

Недавние посты

Смотреть все
CodinGame | Расстояние Чебышёва, Lumen | C++

Приветствую! В этой небольшой заметке расскажу о расстоянии Чебышёва. Рассмотрим применение формулы для нахождения этого расстояния в...

 
 
 
CodinGame | There is no Spoon - Episode 1 | C++

Приветствую! В этой интересной задачке мы посмотрим на пример применения перегрузки операторов. Описание задачи: Игра ведётся на...

 
 
 
CodinGame | Brackets, extreme edition | C++

Приветствую! Вы наверняка сталкивались со всякими разными контейнерами. Например с очередями и односвязными списками. В задаче, которую...

 
 
 

Commentaires


© 2019-2024 by Bezukh Vladimir

bottom of page