Предмет: Информатика,
автор: Аноним
Задача 11
Ребята в клубе современного искусства делают три плаката для проекта. Все плакаты должны быть одной длины, и на каждом из них — по одному слову, повторенному несколько раз.
Так вышло, что три слова для плакатов все разной длины (и их длины не имеют общих делителей). Бумаги мало, поэтому длина плаката должна быть наименьшей из возможных.
Даны три слова. Выведи три строки одинаковой длины, состоящие из этих слов.
Ввод Вывод
ко
кот
котик кококококококококококококококо
коткоткоткоткоткоткоткоткоткот
котиккотиккотиккотиккотиккотик
Ответы
Автор ответа:
4
a = input()
b = input()
c = input()
i = 1
while True:
if i % len(a) == 0 and i % len(b) == 0 and i % len(c) == 0:
break
i += 1
print(a * (i // len(a)))
print(b * (i // len(b)))
print(c * (i // len(c)))
лекция:
судя по всему, нужно найти нок длин слов. его можно найти как нок длин первых двух слов и длины третьего слова(как утверждает вики)
т.е. lcm(a, b, c) = lcm(lcm(a, b), c)
сам нок находится как:
lcm(a, b) = |a * b| / gcd(a,b) , где gcd = нод
его можно найти по алгоритму евклида, но я не уверен что его возможно будет реализовать без циклов и условий
Похожие вопросы
Предмет: Английский язык,
автор: sevakhoderev
Предмет: Русский язык,
автор: Аноним
Предмет: Русский язык,
автор: вика2369
Предмет: Українська мова,
автор: inna4929
Предмет: Математика,
автор: Angelinapastosh1