Задания
Версия для печати и копирования в MS Word
Тип 5 № 14767
i

Ав­то­мат по­лу­ча­ет на вход четырёхзнач­ное число (число не может на­чи­нать­ся с нуля). По этому числу стро­ит­ся новое число по сле­ду­ю­щим пра­ви­лам.

1.  Скла­ды­ва­ют­ся от­дель­но пер­вая и вто­рая, вто­рая и тре­тья, тре­тья и четвёртая цифры за­дан­но­го числа.

2.  Наи­мень­шая из по­лу­чен­ных трёх сумм уда­ля­ет­ся.

3.  Остав­ши­е­ся две суммы за­пи­сы­ва­ют­ся друг за дру­гом в по­ряд­ке не­убы­ва­ния без раз­де­ли­те­лей.

При­мер. Ис­ход­ное число: 1984. Суммы: 1 + 9  =  10, 9 + 8  =  17, 8 + 4  =  12.

Уда­ля­ет­ся 10. Ре­зуль­тат: 1217.

 

Ука­жи­те наи­мень­шее число, при об­ра­бот­ке ко­то­ро­го ав­то­мат выдаёт ре­зуль­тат 613.

Спрятать решение

Ре­ше­ние.

По­нят­но, что 613  — это числа 6 и 13. Чтобы по­лу­чить наи­мень­шее число, возь­мем тре­тью сумму ми­ни­маль­но воз­мож­ную  — 1. Ми­ни­маль­ная сумма из трех  — 1. Её и разо­бьем, по­ста­вив в на­ча­ло еди­ни­цу, так как с 0 числа не на­чи­на­ют­ся. По­лу­ча­ем 10XY. По­сколь­ку оста­ет­ся всего 2 суммы 6 и 13, ста­вим мак­си­маль­но боль­шие сла­га­е­мые в конец. На­хо­дим ис­ход­ное число  — 1067.

 

Ответ: 1067.

 

При­ведём ре­ше­ние на языке Python.

for i in range(1000, 10000):

s = str(i)

k1 = int(s[0]) + int(s[1])

k2 = int(s[1]) + int(s[2])

k3 = int(s[2]) + int(s[3])

first = str(k1 + k2 + k3 - max(k1, k2, k3) - min(k1, k2, k3))

second = str(max(k1, k2, k3))

s1 = first + second

if s1 == '613':

print(i)

break

 

При­ведём ре­ше­ние Ильи Ан­дри­а­но­ва на языке Python.

for n in range(1000, 9999+1):

a, b, c, d = [int(i) for i in str(n)]

M = sorted([a + b, b + c, c + d])

if str(M[1]) + str(M[2]) == '613':

print(n)

break


Аналоги к заданию № 14767: 15101 Все

Раздел кодификатора ФИПИ: 1.6.3 По­стро­е­ние ал­го­рит­мов и прак­ти­че­ские вы­чис­ле­ния