Автор | Сообщение |
|
Отправлено: 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. Порядок здесь особо ничего не играет. Помогите разобраться...
|
|
|
Ответов - 3
[только новые]
|
|
|
Отправлено: 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
|
|
|
|
| Администратор
|
Сообщение: 3737
|
|
Отправлено: 10.10.22 22:06. Заголовок: Спасибо, условие зад..
Спасибо, условие задачи исправлено. Строка заменить(>,1) вообще лишняя.
|
|
|
|
Отправлено: 16.01.23 20:12. Заголовок: Добрый день, в данно..
Добрый день, в данной задаче еще надо исправить условие (100 ≤ k ≤ 200, 100 ≤ m ≤ 200), так как при этих значениях ответ не получается, да и в вашем коде от 199
|
|
|
|