Требуется расшифровать запись арифметического равенства, в котором цифры заменены буквами, причем разные цифры заменены разными буквами, одинаковые - одинаковыми. Предполагается, что исходное равенство верно и записано по обычным правилам арифметики. В частности, в записи числа первая слева цифра не является цифрой 0; используется десятичная система счисления. Ввести ребус в формате ЧИСЛО+ЕЩЕ=СУММА, вывести в столбик все решения в строковом лексикографическом порядке.

ЧИСЛО+ЕЩЕ=СУММА

29348+767=30115
29368+747=30115
59638+474=60112
59678+434=60112
69714+838=70552
69734+818=70552

Спойлер: как я решал эту задачу. Сначала я, конечно, написал решение «в лоб», которое (после ввода и подготовки данных) начиналось строкой

   1 for кодировка in permutations("0123456789", len(алфавит)):
   2 

Этого достаточно, чтобы любой пример решался секунд за 10.

Но можно пойти чуть дальше:


CategoryHomework

LecturesCMC/PythonIntro2020/Homework_ArithRebus (last edited 2021-01-12 13:50:41 by FrBrGeorge)