from itertools import permutations, product
from operator import add, sub, mul, truediv
def f(data):
oops, res = (add, sub, mul, truediv), {}
sign = {add: '+', sub: '-', mul: '*', truediv: '/'}
for t in permutations(data):
for order in product([0, 1, 2], [0, 1], [0]):
for ops in product(oops, repeat=3):
try:
ll, ss = list(map(float, t)), list(map(str, t))
for i, op in zip(order, ops):
ll[i:i + 2] = [op(*ll[i:i + 2])]
ss[i:i + 2] = [f'({ss[i]}{sign[op]}{ss[i + 1]})']
if ll[0].is_integer():
res[int(ll[0])] = ss[0][1:-1]
except ZeroDivisionError:
pass
return res
for x, s in sorted(f([4, 1, 8, 7]).items()):
print(f'{x:>4} : {s}')
20 : 7+(8+(1+4))
21 : 7*(8-(1+4))
22 : ((7/4)+1)*8
23 : ((7-4)*8)-1
24 : (7-1)*(8-4)
25 : ((7-4)*8)+1
26 : (8*4)-(7-1)
27 : (7*(8-4))-1
28 : 7*(8-(1*4))
29 : (7*(8-4))+1
я пытался задать переменной a несколько значений,
if SkillUp in a:
открыл файл
a = прочитал одно число
пока файл не кончился
b = прочитал одно число
если a < b
вывел a
a = b
вывел a
Я понял, что можно использовать цикл с range, но так и не придумал как, решил иначе.
from math import gcd
a = 2
for b in range(3, 21):
a = a * b // gcd(a, b)
print(a)
import re
s = """
<html>
<head>
<title>Test</title>
</head>
<body class="body" style="color: red;">
<p id="1">Test</p>
<p id="2">Test</p>
</body>
</html>"""
print(''.join(re.findall(r'</?[a-z]\w*\b|>', s, flags=re.I | re.M)))
n = 185
dp = [1] + [0] * n
for cap in 16, 17, 21:
for i in range(n - cap, -1, -1):
for j in range(i + cap, n + 1, cap):
dp[j] += dp[i]
print(dp[n])
Найдите все варианты заказа.
n = 185
dp = [['']] + [[] for _ in range(n)]
for cap in 16, 17, 21:
for i in range(n - cap, -1, -1):
for seed in dp[i]:
for j in range(i + cap, n + 1, cap):
dp[j].append(f"{(seed + ' + ') if seed else ''}{cap}*{(j - i) // cap}")
print(*dp[n], sep='\n')