Задача понятна: выведи узор из n ромбов. Один ромб задан постоянной пятёркой строк: ==+== =+=+= +===+ =+=+= ==+==
Чтобы получить узор из n ромбов, просто повторяем этот блок n раз подряд (без пустых строк между ромбами).
Пошаговый разбор
- Заметим базовый блок для одного ромба:
- ==+==
- =+=+=
- +===+
- =+=+=
- ==+==
- Узор из n ромбов = этот блок повторяется n раз подряд.
- Ввод: одно целое число n (минимум 1).
- Вывод: n блоков, каждых по 5 строк, без дополнительных пустых строк.
Алгоритм
- задать список строк block = ["==+==", "=+=+=", "+===+", "=+=+=", "==+=="]
- повторить n раз:
- для каждой строки в block вывести эту строку
Время выполнения: O(n * 5) — линейно от n. Память: O(1) кроме хранения блока из 5 строк.
Пример реализации на Python
def solve(): import sys data = sys.stdin.read().strip() if not data: return n = int(data) block = ["==+==", "=+=+=", "+===+", "=+=+=", "==+=="] out_lines = [] for _ in range(n): out_lines.extend(block) sys.stdout.write("\n".join(out_lines))
Пример входа и соответствующего вывода
Ввод: 3
Вывод: ==+== =+=+= +===+ =+=+= ==+== =+=+= +===+ =+=+= ==+== =+=+= +===+ =+=+= ==+==
Ввод: 1
Вывод: ==+== =+=+= +===+ =+=+= ==+==
Если хочешь, могу адаптировать код под другой язык программирования или под иные требования формата вывода.