На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 5
ссылка на сообщение  Отправлено: 18.05.23 20:44. Заголовок: Задача №5337


Имеется решение на python. Все по условию, сначала отфильтровываем по первому условию, потом перебираем все оригинальные пары и вставили флаг, чтобы не считались множество раз для одной строки, например из 4 одинаковых чисел. Получаю ответ 58. В чем я не прав?
 
f = open('1.txt', 'r')
k = 0

for ln in f:

ln = list(map(int, f.readline().split()))
ma = max(ln)
s = sum(ln) - ma
s1 = sum(ln)
if s > ma:
flag = True
for i in range(len(ln)):
for j in range(i + 1, len(ln)):

if (ln[i ] + ln[j]) == (s1 - (ln[i ] + ln[j])) and flag:

k += 1
flag = False

print(k)


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]


Администратор




Сообщение: 3978
ссылка на сообщение  Отправлено: 03.06.23 22:05. Заголовок: Skryl Nikita пишет: ..


Skryl Nikita пишет:
 цитата:
В чем я не прав?

Когда вы написали
for ln in f:
вы перебираете все строки в файле. Это значит, что ln - очередная прочитанная строка и .readline вызываеть не нужно. Сделайте так:
 for ln in f:     
ln = list(map(int, ln.split()))
Вот еще вариант:
 count = 0 
for s in open('9-160.txt'):
data = sorted( map(int, s.split()) )
if data[-1] < sum(data[:-1]) and\
data[0]+data[-1] == data[1]+data[2]:
count += 1
print( count )


___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1702
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет