Форум » Электронные таблицы » № 6452 » Ответить

№ 6452

PeterFed: (№ 6452) В файле электронной таблицы 9-210.xls в каждой строке записаны 6 натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых выполнены следующие условия: – максимальное число не повторяется; – среди остальных чисел строки есть повторяющиеся; – сумма максимального и минимального чисел строки больше, чем сумма остальных четырёх чисел. В ответе 21, у меня выходит 22. Решал кодом: [pre2]f=open('9-210.txt') s=[x.strip() for x in f.readlines()] n=len(s) c=0 for i in range(n): l=sorted([int(item) for item in s[ i].split(' ')]) if l[5]!=l[4] and len(l)!=len(set(l)) and (l[0]+l[5] > l[1]+l[2]+l[3]+l[4]): c+=1 print(c)[/pre2] В остальных задачах с этим файлом подобный код дает верные ответы, где ошибается здесь? Файл - сохраненная средствами Экселя в формате .txt с кодировкой UTF-8 таблица с сайта, версия Python 3.11

Ответов - 4

1llumi: у меня получилось то же самое, ошибка в ответах. Можете посмотреть на предыдущий вопрос в этой теме, точно такая же проблема.

Поляков: Спасибо, ответ исправлен. Верный ответ - 22.

Ventus: Здравствуйте, а почему ответ 22? В коде ведь нет проверки, чтобы минимальное число было 1 раз, а также почему мы сравниваем сумму min и max числа со всеми другими, если нужно только с повторяющимися? Почему такой код будет не правильным? У меня ответ 251. Вот код: f = open('9-210.txt') s = [x for x in f.readlines()] n = len(s) c = 0 for i in range(n): line = [int(item) for item in s.split('\t')] line.sort() povtor = [] for x in line: if line.count(x) > 1: povtor.append(x) if line.count(line[0]) == 1 and len(line) != len(set(line)) and line[0] + line[5] > sum(povtor): c += 1 print(c) f.close()


Ж: Сортировка по умолчанию происходит по возрастанию, так что максимальный элемент - это последний сумма остальных 4-х - это не повторяющихся а 2-го, ... , 5-го , т.е. line[1:5] [pre2] f = open('c:/9-210.csv') s = [x for x in f.readlines()] n = len(s) c = 0 for i in range(n): line = [int(item) for item in s[ i].split(';')] line.sort() povtor = [] for x in line: if line.count(x) > 1: povtor.append(x) if line.count(line[-1]) == 1 and len(line) != len(set(line)) and line[0] + line[5] > sum(line[1:5]): c += 1 print(line) print(c) f.close() [/pre2]



полная версия страницы