Где ошибка в коде? 17 задание егэ по информатике
текст задачи
В файле 17-388.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –100 000 до 100 000 включительно. Определите количество четвёрок элементов последовательности, в которых или только одно из чисел или все четыре числа являются двузначным, а сумма элементов четвёрки не меньше максимального элемента последовательности, оканчивающегося на 68. В ответе запишите количество найденных четвёрок чисел, затем максимальную из сумм элементов таких четвёрок. В данной задаче под четвёркой подразумевается четыре идущих подряд элемента последовательности.
f=open("17.txt")
a=[int(i) for i in f]
c=0
n=0
z=0
for i in range(len(a)):
if ((max([int(input()) for i in range])))%(len(str(a[i]))-2)==68:
n==((max([int(input()) for i in range])))
for i in range(len(a)):
if len(str(a[i]))==2 or len(str(a[i+1]))==2 or len(str(a[i+2]))==2 or len(str(a[i+3]))==2:
if (a[i]+a[i+1]+a[i+2]+a[i+3])>=n:
c+=1
z=max(a[i]+a[i+1]+a[i+2]+a[i+3])
print(c,z)
Ошибка в коде находится в следующей строке:
if ((max([int(input()) for i in range])))%(len(str(a[i]))-2)==68:
Здесь присутствует несколько ошибок:
1. Функция input() используется для ввода данных с клавиатуры, однако в данном случае не должна применяться. Вместо этого необходимо обращаться к элементам последовательности a[i].
2. Внутри функции max([int(input()) for i in range]) пропущен аргумент - количество итераций в цикле range. Необходимо использовать следующий синтаксис: max([int(input()) for i in range(n)]).
3. Выражение len(str(a[i])) - 2 возвращает длину строки числа a[i] и вычитает из нее 2. Однако задача требует проверить, является ли последнее число в последовательности двузначным и оканчивается ли оно на 68. Для этого нужно изменить проверку на следующую: len(str(a[-1])) == 2 and str(a[-1])[-2:] == "68".
Исправленный код будет выглядеть так:
f = open("17-388.txt")
a = [int(i) for i in f]
c = 0
n = 0
z = 0
for i in range(len(a)):
if len(str(a[-1])) == 2 and str(a[-1])[-2:] == "68":
n = max(a)
for i in range(len(a) - 3):
if len(str(a[i])) == 2 or len(str(a[i+1])) == 2 or len(str(a[i+2])) == 2 or len(str(a[i+3])) == 2:
if (a[i] + a[i+1] + a[i+2] + a[i+3]) >= n:
c += 1
z = max(z, a[i] + a[i+1] + a[i+2] + a[i+3])
print(c, z)