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

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

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

2.  Из по­лу­чен­ных трёх чисел вы­би­ра­ют­ся два наи­боль­ших и за­пи­сы­ва­ют­ся друг за дру­гом в по­ряд­ке не­убы­ва­ния без раз­де­ли­те­лей.

При­мер. Ис­ход­ное число: 9575. Суммы: 9 + 5  =  14; 5 + 7  =  12; 7 + 5  =  12. Наи­боль­шие суммы: 14, 12. Ре­зуль­тат: 1214.

 

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

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

Ре­ше­ние.

Пред­ста­вим числа 15 и 17 в виде сумм, так чтобы одно из сла­га­е­мых было как можно мень­ше, ис­поль­зуя толь­ко числа от нуля до де­вя­ти: 15  =  6 + 9, 17  =  8 + 9. Чтобы по­стро­ить наи­мень­шее ис­ход­ное число, нужно по воз­мож­но­сти ста­вить боль­шие числа в млад­ших раз­ря­дах, а ма­лень­кие  — в стар­ших. Наи­мень­шее число, удо­вле­тво­ря­ю­щее усло­вию: 1698.

 

Ответ: 1698.

 

При­ведём дру­гое ре­ше­ние на языке 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 == '1517':

print(i)

break


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

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