Егэ информатика 17 номер. Составил програму для вычисления на Python ответ не совпадает, что неправильно? В файле содержится последовательность из 10 000 целых положительных чисел. Каждое число не превышает 10 000. Определите и запишите в ответе сначала количество пар элементов последовательности, у которых сумма элементов кратна 7, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два различных элемента последовательности. Порядок элементов в паре не важен.
Вот программа которую я составил
with open('17.txt') as f:
s = [int(x) for x in f]
res = []
for i in range(0, len(s)-1):
for j in range(i, len(s)):
if (s[i] + s[j]) % 7 == 0:
res.append(s[i] + s[j])
print(len(res), max(res))
Мой ответ 7144001 19992
А правильный 7142586 19992
Где ошибка?

20 Янв 2022 в 19:40
780 +2
0
Ответы
1

Ошибка заключается в том, что внутри цикла вы сравниваете элементы последовательности сами с собой (i и j могут быть равными). Для того чтобы избежать этого, вам нужно изменить внутренний цикл на range(i+1, len(s)). Таким образом, каждый элемент будет сравниваться только с последующими элементами, а не с самим собой. Исправленный код будет выглядеть следующим образом:

with open('17.txt') as f:
s = [int(x) for x in f]
res = []
for i in range(0, len(s)-1):
for j in range(i+1, len(s)):
if (s[i] + s[j]) % 7 == 0:
res.append(s[i] + s[j])
print(len(res), max(res))

После исправления данной ошибки, ваш ответ должен совпасть с правильным.

16 Апр 2024 в 19:44
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир