- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
def check(s, n):
for left_open in range(0, len(s)):
for right_close in range(left_open + 1, len(s)):
for left_middle in range(left_open + 1, right_close):
for right_middle in range(left_middle + 1, right_close):
s1 = s[:left_open]
s2 = s[left_open:left_middle]
s3 = s[left_middle:right_middle]
s4 = s[right_middle:right_close]
s5 = s[right_close:]
exp1 = s1+'('+s2+'('+s3+')'+s4+')'+s5
exp2 = s1+'('+s2+')'+s3+'('+s4+')'+s5
try:
res = eval(exp1)
if res == n:
yield exp1
except:
continue
try:
res = eval(exp2)
if res == n:
yield exp2
except:
continue
s = '1 + 2 * 3 + 4 * 5 + 6 * 7 + 8 * 9 + 10 * 11 + 12 * 13 + 14 + 15'
for exp in check(s, 850):
print(exp)
Мой скрипт для решения задачи с javarush (расставить скобки в выражении, чтобы значение было равно 850). Такой же страшный, как и его вывод.