- import itertools
- 待计算的数=[]
- 运算符=['+','-','*','/']
- 运算式=''
- 找到运算式=False
- 括号排列组合=[['(','','',')','','','',''],
- ['(','','',')','(','','',')'],
- ['','','','','(','','',')'],
- ['','','(','','',')','',''],
- ['(','','','','',')','',''],
- ['((','','',')','',')','',''],
- ['(','','(','','','))','',''],
- ['','','(','','','','',')'],
- ['','','((','','',')','',')'],
- ['','','(','','(','','','))']]
- for i in range(1,5):
- num=input('输入第'+str(i)+'个数:')
- 待计算的数.append(num)
- #生成算式
- 数字排列组合=list(itertools.permutations(待计算的数,4))
- 运算符排列组合=list(itertools.product(*[运算符]*3))
- for n in 数字排列组合:
- for o in 运算符排列组合:
- if '*' in o or '/' in o:
- for ps in 括号排列组合:
- 运算式=(ps[0]+n[0]+ps[1] +o[0] +
- ps[2]+n[1]+ps[3] +o[1] +
- ps[4]+n[2]+ps[5] +o[2] +
- ps[6]+n[3]+ps[7])
- else:
- 运算式=n[0]+o[0]+n[1]+o[1]+n[2]+o[2]+n[3]
-
- try:
- 结果=eval(运算式)
- except Exception as err:
- pass
- if 结果==24:
- print(运算式)
- 找到运算式=True
- if 找到运算式:
- pass
- else:
- print('未找到运算式')
复制代码 |