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

Файл со­дер­жит по­сле­до­ва­тель­ность целых чисел, по мо­ду­лю не пре­вы­ша­ю­щих 10 000. Назовём парой два иду­щих под­ряд эле­мен­та по­сле­до­ва­тель­но­сти.

За­да­ние 17

Опре­де­ли­те ко­ли­че­ство таких пар, в ко­то­рых за­пись мень­ше­го эле­мен­та за­кан­чи­ва­ет­ся циф­рой 3, а сумма квад­ра­тов эле­мен­тов пары мень­ше, чем квад­рат наи­мень­ше­го из эле­мен­тов по­сле­до­ва­тель­но­сти, за­пись ко­то­рых за­кан­чи­ва­ет­ся циф­рой 3. В от­ве­те за­пи­ши­те два числа: сна­ча­ла ко­ли­че­ство най­ден­ных пар, затем мак­си­маль­ную сумму квад­ра­тов эле­мен­тов этих пар.

 

Ответ:

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

Ре­ше­ние.

Решим в два про­хо­да. В пер­вом про­хо­де найдём мень­ший эле­мент за­кан­чи­ва­ет­ся циф­рой 5, а во вто­ром про­хо­де найдём ко­ли­че­ство пар и мак­си­маль­ную сумму квад­ра­тов эле­мен­тов этих пар.

 

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

count = 0

m = -10001

f = open('17.txt')

l = [int(i) for i in f]

mini=10001

for i in range(len(l) - 1):

if abs(l[i]) % 10 == 3:

mini = min(mini, l[i])

for i in range(len(l) - 1):

if (((l[i] < l[i+1]) and (abs(l[i]) % 10 == 3)) or ((l[i] > l[i+1]) and (abs(l[i+1]) % 10 == 3))) and (l[i]**2+l[i+1]**2 < mini**2):

count += 1

m = max(m, l[i]**2 + l[i + 1]**2)

print(count, m)

 

Ре­зуль­тат ра­бо­ты про­грам­мы  — 355 99033293.

 

Ответ: 355  99033293.

 

При­ме­ча­ние.

Путь к файлу не­об­хо­ди­мо ука­зать со­глас­но рас­по­ло­же­нию файла на Вашем ком­пью­те­ре.

 

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

M = [int(x) for x in open('17.txt')]

D = [x for x in M if str(x)[-1] == '3']

R = []

for i in range(len(M)-1):

x, y = M[i], M[i+1]

if str(min(x, y))[-1] == '3':

if (x ** 2 + y ** 2) < min(D) ** 2:

R.append(x ** 2 + y ** 2)

print(len(R), max(R))