Условие: Тип 17 № 37369
В файле содержится последовательность из 10 000 целых положительных чисел. Каждое число не превышает 10 000. Определите и запишите в ответе сначала количество пар элементов последовательности, у которых разность элементов кратна 80, затем максимальную из разностей элементов таких пар. В данной задаче под парой подразумевается два различных элемента последовательности. Порядок элементов в паре не важен.
Для выполнения этого задания следует написать программу. Ссылка на файл, который необходимо обработать с помощью данного алгоритма.
Комментарии к коду программы:
f = open('17.txt')
- Открытие файла с именем '17.txt' и присвоение его объекта переменной f
.M = [int(i) for i in f]
- Создание списка M
, в котором каждый элемент является целым числом, полученным из элементов файла f
.maxi = 0
- Инициализация переменной maxi
со значением 0.count = 0
- Инициализация переменной count
со значением 0.for i in range(len(M) - 1):
- Цикл, который проходит по индексам элементов списка M
(за исключением последнего элемента).for j in range(i + 1, len(M)):
- Вложенный цикл, который проходит по индексам элементов списка M
(начиная с индекса i + 1
).if (M[i] - M[j]) % 80 == 0:
- Если разница между элементами M[i]
и M[j]
делится на 80 без остатка, выполняем следующую инструкцию.count += 1
- Увеличение значения переменной count
на 1.maxi = max(maxi, abs(M[i] - M[j]))
- Присваивание переменной maxi
максимального значения между текущим значением maxi
и абсолютной разницей между элементами M[i]
и M[j]
.print(count, maxi)
- Вывод на экран значений переменных count
и maxi
.# Код решения Вариант 1
f = open('17.txt')
M = [int(i) for i in f]
maxi = 0
count = 0
for i in range(len(M) - 1):
for j in range(i + 1, len(M)):
if (M[i] - M[j]) % 80 == 0:
count += 1
maxi = max(maxi, abs(M[i] - M[j]))
print(count, maxi)