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

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

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

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



Сообщение: 14
ссылка на сообщение  Отправлено: 10.10.22 17:57. Заголовок: 12-313



 
for k in range(100,201):
for m in range(100,201):
for n in range(100,201):
s = '>' + k * '1' + m * '2' + n * '*'
while '>1' in s or '>2' in s or '>*' in s:
if '>1' in s:
s = s.replace('>1', '111>', 1)
if '>2' in s:
s = s.replace('>2', '1>', 1)
if '>*' in s:
s = s.replace('>*', '%2*>', 1)
s=s.replace('>' ,'1' , 1) # здесь цикл закончится..
su = sum(int(x) for x in s if x in '0123456789')
print(k,m,n,su)
if su == 1190:
print(n)
break

Никак не могу понять как можно получить сумму 1190?
Максимальная сумма которую можно получить при исходных данных 603. Порядок здесь особо ничего не играет. Помогите разобраться...

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





Сообщение: 15
ссылка на сообщение  Отправлено: 10.10.22 18:04. Заголовок: Разобрался, в сборник..


Разобрался. В сборнике опечатка:
  заменить (>, 1) 
КОНЕЦ ПОКА

эти две строчки нужно поменять местами.
for k in range(199,201): 
for m in range(199,201):
for n in range(100,201):
s = '>' + k * '1' + m * '2' + n * '*'
while '>1' in s or '>2' in s or '>*' in s:
if '>1' in s:
s = s.replace('>1', '111>', 1)
if '>2' in s:
s = s.replace('>2', '1>', 1)
if '>*' in s:
s = s.replace('>*', '%2*>', 1)
s=s.replace('>' ,'1' , 1)
su = sum(int(x) for x in s if x in '0123456789')
if su == 1190:
print(n)
break


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




Сообщение: 3737
ссылка на сообщение  Отправлено: 10.10.22 22:06. Заголовок: Спасибо, условие зад..


Спасибо, условие задачи исправлено. Строка заменить(>,1) вообще лишняя.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 12
ссылка на сообщение  Отправлено: 16.01.23 20:12. Заголовок: Добрый день, в данно..


Добрый день, в данной задаче еще надо исправить условие (100 ≤ k ≤ 200, 100 ≤ m ≤ 200), так как при этих значениях ответ не получается, да и в вашем коде от 199

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

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