last lab
This commit is contained in:
37
labPython/lab20/task_2.py
Normal file
37
labPython/lab20/task_2.py
Normal file
@@ -0,0 +1,37 @@
|
||||
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("Ошибка ввода")
|
||||
Reference in New Issue
Block a user