|
发表于 2017-7-19 10:33:06
|
显示全部楼层
上面的程序有问题,忘了考虑优先级的问题了=。= 改过之后多了一组答案
- def cal_num(cal, a, b):
- if cal == 0:
- return a + b
- elif cal == 1:
- return a - b
- elif cal == 2:
- return a * b
- elif cal == 3:
- return a / b
- def get_res(num, pre_c, after_c):
- if after_c > 1:
- result_pre = cal_num(after_c, num, num)
- result = cal_num(pre_c, num, result_pre)
- return result
- else:
- result_pre = cal_num(pre_c, num, num)
- result = cal_num(after_c, result_pre, num)
- return result
- def print_line(num, pre_c, after_c):
- cal = ['+', '-', '*', '/']
- print(num, cal[pre_c], num, cal[after_c], num)
- for i in range(1,10):
- for pre_c in range(0,4):
- for after_c in range(0,4):
- result = get_res(i, pre_c, after_c)
- if result == 1:
- print_line(i, pre_c, after_c)
复制代码
- 1 + 1 - 1
- 1 - 1 + 1
- 1 * 1 * 1
- 1 * 1 / 1
- 1 / 1 * 1
- 1 / 1 / 1
- 2 - 2 / 2
复制代码 |
|