38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
print("task: 6r\nВставка + и - между цифрами для получения числа N")
|
|
|
|
|
|
def generate(s, pos, expr, target, results):
|
|
if pos == len(s):
|
|
try:
|
|
if eval(expr) == target:
|
|
results.append(expr + "=" + str(target))
|
|
except:
|
|
pass
|
|
return
|
|
generate(s, pos + 1, expr + "+" + s[pos], target, results)
|
|
generate(s, pos + 1, expr + "-" + s[pos], target, results)
|
|
generate(s, pos + 1, expr + s[pos], target, results)
|
|
|
|
|
|
while True:
|
|
print("\n1 - решить\n0 - выход")
|
|
try:
|
|
c = input("Выбор: ")
|
|
if c == "1":
|
|
s, target = input("Введите число и N: ").split()
|
|
target = int(target)
|
|
results = []
|
|
generate(s, 1, s[0], target, results)
|
|
with open("result.txt", "w") as f:
|
|
if results:
|
|
for r in results:
|
|
print(r)
|
|
f.write(r + "\n")
|
|
else:
|
|
print("Решение не существует")
|
|
f.write("Решение не существует")
|
|
elif c == "0":
|
|
break
|
|
except:
|
|
print("Ошибка ввода")
|