Егэ информатика 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 Где ошибка?
Ошибка заключается в том, что внутри цикла вы сравниваете элементы последовательности сами с собой (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))
После исправления данной ошибки, ваш ответ должен совпасть с правильным.
Ошибка заключается в том, что внутри цикла вы сравниваете элементы последовательности сами с собой (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))
После исправления данной ошибки, ваш ответ должен совпасть с правильным.