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

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

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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 22.02.22 12:27. Заголовок: Задание 17 №4300 (автор Кабанов)


Добрый день!
Не сходится ответ с решением автора, первое число получается не 140, а 150. Максимальная сумма сходится

Мое решение (здесь f - файловая переменная)

k = 0
maxSum = -1000000000
nums = []
for i in f:
nums += [int(i)]
prev = nums[0]
for i in range(1, len(nums)):
cur = nums[i]
s = prev + cur
if s % 3 == 0 and s % 6 != 0 and (prev * cur) % 10 == 8:
k += 1
if s > maxSum:
maxSum = s
prev = cur
print(k,maxSum)

Подскажите, пожалуйста, что я делаю не так?

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







Сообщение: 53
ссылка на сообщение  Отправлено: 22.02.22 13:42. Заголовок: Программы "завор..


Программы "заворачивайте" в тэг
...
, при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.


Подозреваю, что работаете с отрицательными числами и не берете модуль при взятии остатка от деления.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 572
ссылка на сообщение  Отправлено: 22.02.22 16:23. Заголовок: abs(prev * cur) % 10..


abs(prev * cur) % 10 == 8

Discussio mater veritas est Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 23.02.22 19:44. Заголовок: Понял, спасибо больш..


Понял, спасибо большое) Неожиданно, что питон так работает с отрицательными числами при подсчете остатка от деления

Спасибо: 0 
Цитата Ответить





Сообщение: 59
ссылка на сообщение  Отправлено: 23.02.22 20:58. Заголовок: В разных языках прог..


В разных языках программирования остаток по-разному считается. Подробнее на википедии https://ru.wikipedia.org/wiki/Деление_с_остатком

В с++, с#, Pascal знак остатка определяет Делимое, в Python - Делитель.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 17
ссылка на сообщение  Отправлено: 19.02.23 22:42. Заголовок: (№ 4300) (А. Кабанов..


(№ 4300) (А. Кабанов) В файле 17-3.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, сумма которых кратна 3 и не кратна 6, а произведение оканчивается на 8, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

теперь собственно существо вопроса: файл содержит 5001 строку, при этом в первой строке записано значение 5000. Это как то связано? или действительно задумывалось 5001 значение и первое значение по "счастливому" совпадению оказалось равным 5000? Если же данная связь не случайна, то условие требует уточнения. Хотя сразу оговорюсь - на ответ это не влияет (но при других значениях и количествах строк в файле могло бы повлиять). это скорее вопрос касающийся того, что везде должен быть порядок.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 609
ссылка на сообщение  Отправлено: 20.02.23 06:23. Заголовок: теперь собственно су..



 цитата:
теперь собственно существо вопроса: файл содержит 5001 строку, при этом в первой строке записано значение 5000. Это как то связано? или действительно задумывалось 5001 значение и первое значение по "счастливому" совпадению оказалось равным 5000?



5000 - это просто число.

Discussio mater veritas est Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 16
ссылка на сообщение  Отправлено: 22.02.23 12:12. Заголовок: А у меня вот такое р..


А у меня вот такое решение этой задачи:
 
###
uses school;
var a:=ReadLines('17-3.txt')
.Sel(x->x.ToInteger)
.pairwise.wh(\(a,b)->(a+b).D(3) and (a+b).ND(6) and (abs(a*b) mod 10 =8));
println(a.Count,a.Sel(\(a,b)->a+b).Max);


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 23
ссылка на сообщение  Отправлено: 28.02.23 13:36. Заголовок: отличная идея сформи..


отличная идея сформировать набор пар с помощью pairwise!!!
единственное чего я избегал бы - это использования распаковки кортежа.
эта возможность появилась в версии 3.8, а недавно ученик показал перечень программ в котором он ставил подпись "ознакомлен".
там указаны версии "3.7.1 или 3.8.1" - то есть может оказаться что данный прием не будет работать.
конструкция "wh(x->(x[0]+x[1])..." будет гарантировано работать и на старых версиях.
и возможно я бы допилил код таким образом
 
..
.pairwise.wh(\(a,b)->(a+b).D(3) and (a+b).ND(6) and (abs(a*b) mod 10 =8))
.Sel(\(a,b)->a+b);
println(a.Count,a.Max);

или
 
..
.pairwise((x,y)->(x+y , x*y))
.wh(x->x[0].isodd and x[0].D(3) and (x[1].digits.last=8))
.sel(x->x[0]);
println(a.Count,a.Max);


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

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