29 lines
615 B
Python
29 lines
615 B
Python
#!/usr/bin/env python3
|
|
|
|
|
|
def ops(number, length):
|
|
b = bin(number)[2:]
|
|
return '+' * (length - len(b)) + b.replace('0', '+').replace('1', '-')
|
|
|
|
|
|
def libai4(n):
|
|
seq, l = list(range(1, n + 1)), []
|
|
|
|
for i in range(2 ** (n - 1)):
|
|
s = ''.join(["{}{}".format(*j) for j in zip(ops(i, n), seq)])[1:]
|
|
if eval(s) == 0:
|
|
l.append(s + '=0\n')
|
|
|
|
return l
|
|
|
|
|
|
if __name__ == '__main__':
|
|
with open('BAI4.INP') as f:
|
|
n = int(f.read())
|
|
|
|
with open('BAI4.OUT', 'w') as f:
|
|
l = libai4(n)
|
|
f.write('{}\n'.format(len(l)))
|
|
for s in l:
|
|
f.write(s)
|