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

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

1.  Пе­ре­мно­жа­ют­ся пер­вая и вто­рая, а также вто­рая и тре­тья цифры.

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

При­мер. Ис­ход­ное число: 631. Про­из­ве­де­ние: 6 · 3  =  18; 3 · 1  =  3. Ре­зуль­тат: 318.

 

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

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

Ре­ше­ние.

По­сколь­ку числа за­пи­са­ны в по­ряд­ке не­убы­ва­ния, одно из про­из­ве­де­ний двух раз­ря­дов равно 6, дру­гое  — 21. Для того чтобы число было наи­боль­шим, не­об­хо­ди­мо, чтобы в стар­ших раз­ря­дах на­хо­ди­лась как можно боль­шая цифра. Сле­до­ва­тель­но, сумма стар­ших раз­ря­дов долж­на быть боль­шей. Пред­ста­вим 21 как про­из­ве­де­ние 7 и 3, это  — пер­вые две цифры ис­ко­мо­го числа. Тогда тре­тья цифра 6 : 3  =  2. Сле­до­ва­тель­но, ис­ко­мое число  — 732.

 

Ответ: 732.

 

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

for i in range(1000, 100, -1):

s = str(i)

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

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

first = str(min(k1, k2))

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

s1 = first + second

if s1 == '621':

print(i)

break

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