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
Commentaires