Top.Mail.Ru
Ответы

Где ошибка в коде? 17 задание егэ по информатике

текст задачи
В файле 17-388.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –100 000 до 100 000 включительно. Определите количество четвёрок элементов последовательности, в которых или только одно из чисел или все четыре числа являются двузначным, а сумма элементов четвёрки не меньше максимального элемента последовательности, оканчивающегося на 68. В ответе запишите количество найденных четвёрок чисел, затем максимальную из сумм элементов таких четвёрок. В данной задаче под четвёркой подразумевается четыре идущих подряд элемента последовательности.

123456789101112131415
 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)