Автомат получает на вход четырехзначное число. По этому числу строится новое число по следующим правилам.
1. Складываются первая и вторая, а также третья и четвертая цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке неубывания (без разделителей).
Пример. Исходное число: . Суммы:
+
=
;
+
=
. Результат:
.
Укажите наименьшее число, в результате обработки которого автомат выдаст число .
Программой
for i in range(1000, 10000):
i = str(i)
first = int(i[0]) + int(i[1])
second = int(i[2] + int(i[3])
if first > second:
res = str(second) + str(first)
else:
res = str(first) + str(second)
if res == ’613’:
print(i)
break
Руками
Максимальное значение, которое можно получить при сложении двух цифр, — . Поэтому разобьем результат работы алгоритма на числа, не превышающие
:
.
Теперь подберем наиболее выгодное для нас разложение числа . Наша задача подобрать такое разложение, чтобы одно из чисел в сумме было минимальным:
Разложения, в которых участвуют числа, больше , нам не подходят.
Значит, — самое выгодное для нас разложение числа
. В остальных случаях мы не сможем получить минимальное число.
Теперь подберем наиболее выгодное для нас разложение числа . Наша задача подобрать такое разложение, чтобы одно из чисел в сумме было минимальным:
— самое выгодное для нас разложение числа
. В остальных случаях мы не сможем получить минимальное число.
Поскольку в результате работы алгоритма нам необходимо получить , исходя из разложений, получим ответ —
.
Проверим его: , запишем результаты в порядке неубывания:
.