Форум » Выполнение и анализ алгоритмов для исполнителей » 12-313 » Ответить

12-313

Nox: [pre2] 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[/pre2] Никак не могу понять как можно получить сумму 1190? Максимальная сумма которую можно получить при исходных данных 603. Порядок здесь особо ничего не играет. Помогите разобраться...

Ответов - 3

Nox: Разобрался. В сборнике опечатка: [pre2] заменить (>, 1) КОНЕЦ ПОКА[/pre2] эти две строчки нужно поменять местами. [pre2]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[/pre2]

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

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




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