Автомат получает на вход четырехзначное число. По этому числу строится новое число по следующим правилам.
1. Складываются первая и вторая, вторая и третья, а также третья и четвертая цифры исходного числа.
2. Из полученных трёх чисел выбираются два наибольших и записываются друг за другом в порядке убывания без разделителей.
Пример. Исходное число: . Суммы:
;
;
. Наименьшая сумма:
. Результат:
. Укажите наименьшее число, в результате обработки которого автомат выдаст число
.
Решение 1
for i in range(1000, 10000):
a = [int(x) for x in str(i)]
s1 = a[0] + a[1]
s2 = a[1] + a[2]
s3 = a[2] + a[3]
ma = max(s1, s2, s3)
mi = min(s1, s2, s3)
sr = s1 + s2 + s3 - ma - mi
if int(str(ma) + str(sr)) == 147:
print(i)
break
Решение 2
Автомат выдаст число , значит полученные числа равны
(максимальная сумма) и
(средняя сумма). Поскольку мы ищем наименьшее число, то чем левее разряд, тем меньше он должен быть, а значит, сумма первых разрядов должна быть наименьшей, а сумма последних — наибольшей. Тогда сумма двух последних разрядов равна
, что можно представить как
и
. Значит, сумма средних разрядов равна
, но, поскольку число
уже есть, мы получаем, что второй слева разряд равен
. Тогда первая цифра может быть какой угодно, меньшей
, но, так как мы ищем минимальное число, мы выбираем наименьшую возможную цифру, то есть
(
нельзя ставить на первое место).