До победы над злом остался один шаг — разрушить логово Зерона.
Для этого нужно создать трёхзначное магическое число, которое будет сильнее двух двухзначных защитных чисел Зерона.
Самый простой способ создать сильное число:
- первой взять максимальную цифру из всех защитных чисел;
- последней — минимальную;
- в середину поставить сумму оставшихся без учёта переноса разряда.
Помогите одолеть зло.
Формат ввода
В двух строках записаны защитные числа Зерона.
Формат вывода:
Одно трёхзначное число, которое приведёт к победе.
Пример
Ввод
31
11
Вывод
321
Ввод
49
17
Вывод
911
Решение
Самая сложная задача из трилогии. Алгоритмически она не сложнее предыдущей, но как и в прошлом задании, нужно немного поразмыслить и догадаться, что нам не надо знать какие именно цифры являются “остальными”, а достаточно знать их сумму.
Разбиваем число на цифры.
Находим максимальное и минимальные цифры.
Находим сумму “остальных”. Как и в прошлом задании она равна сумме всех цифр минус максимальное и минимальное цифры. Если результат больше 10 – получаем из него единицы (отнимаем от него 10 или находим остаток от деления на 10).
Посмотреть код
Решение
num1 = int(input())
num2 = int(input())
a = num1 // 10
b = num1 % 10
c = num2 // 10
d = num2 % 10
summa = a + b + c + d
minimum = min(a, b, c, d)
maximum = max(a, b, c, d)
middle = (summa - minimum - maximum) % 10
print(maximum * 100 + middle * 10 + minimum)
a = int(input())
b = int(input())
n_1 = a // 10
n_2 = a % 10
n_3 = b // 10
n_4 = b % 10
n_max = max(n_1, n_2, n_3, n_4)
n_min = min(n_1, n_2, n_3, n_4)
sum = n_1 + n_2 + n_3 + n_4
n_sr = sum – (n_min + n_max)
if n_sr >= 10:
sr = n_sr % 10
print(f‘{n_max}{sr}{n_min}’)
else:
print(f‘{n_max}{n_sr}{n_min}’)