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

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

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

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

При­мер. Ис­ход­ное число: 7511. Суммы: 7 + 5  =  12; 1 + 1  =  2. Ре­зуль­тат: 212. Сколь­ко су­ще­ству­ет чисел, в ре­зуль­та­те об­ра­бот­ки ко­то­рых ав­то­мат вы­даст число 414.

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

Ре­ше­ние.

Сумма 2 цифр мень­ше 19, зна­чит, число 414 по­лу­ча­ет­ся, если одна пара цифр в сумме даёт 4, а вто­рая  — 14.

Су­ще­ству­ет два ва­ри­ан­та по­лу­че­ния числа 4: 3 + 1; 1 + 3.

Су­ще­ству­ет три ва­ри­ан­та по­лу­че­ния числа 14: 5 + 9; 9 + 5; 7 + 7.

Можно по­ме­нять эти пары ме­ста­ми, по­сколь­ку они за­пи­шут­ся в по­ряд­ке не­убы­ва­ния: 2 · 2 · 3  =  12.

 

При­ме­ча­ние. Нужно ис­поль­зо­вать толь­ко не­чет­ные цифры. По­это­му нель­зя пред­ста­вить число 14 как 8 + 6 или 6 + 8; нель­зя также пред­ста­вить число 4 как 2 + 2.

 

Ответ: 12.

 

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

k = 0

for i in range(1000, 10000):

s = str(i)

if int(s[0]) % 2 != 0 and int(s[1]) % 2 != 0 and int(s[2]) % 2 != 0 and int(s[3]) % 2 != 0:

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

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

first = str(min(k1, k2))

second = str(max(k1, k2))

s1 = first + second

if s1 == '414':

k += 1

print(k)

 

При­ведём ре­ше­ние Ми­ха­и­ла Глин­ско­го на языке Python.

al = '13579'

count = 0

for x in range(1000,10000):

s = str(x)

if s[0] in al and s[1] in al and s[2] in al and s[3] in al:

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

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

m=[a,b]

m.sort()

if m[0] == 4 and m[1] == 14:

count += 1

print(count)

 

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

from itertools import product

s=product('13579',repeat = 4)

k=0

for i in s:

if (int(i[0])+int(i[1])==4 and int(i[2])+int(i[3])==14) or (int(i[0])+int(i[1])==14 and int(i[2])+int(i[3])==4):

k+=1

print(k)


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

Источник: Тре­ни­ро­воч­ная ра­бо­та по ИН­ФОР­МА­ТИ­КЕ 11 класс 30 сен­тяб­ря 2016 года Ва­ри­ант ИН10103
Раздел кодификатора ФИПИ: 1.6.3 По­стро­е­ние ал­го­рит­мов и прак­ти­че­ские вы­чис­ле­ния