速算24点是一种比较典型的数字益智游戏,通常由一人顺次给出4个介于 1~13之间的整数,然后由另一人通过加、减、乘、除四则运算中的三个将这4个数按顺次排列成算式,看能否快速的算出24? 请编写程序实现这一游戏过程。
时间: 2024-05-06 20:18:45 浏览: 153
以下是一个简单的Python程序实现:
```python
import itertools
def calculate(num_list):
for ops in itertools.product('+-*/', repeat=3):
expression = num_list[0] + ops[0] + num_list[1] + ops[1] + num_list[2] + ops[2] + num_list[3]
try:
result = eval(expression)
if result == 24:
return expression
except ZeroDivisionError:
pass
return None
def main():
while True:
num_str = input("请输入四个数字(1-13),以空格分隔:")
num_list = num_str.split()
if len(num_list) != 4:
print("输入错误,请重新输入!")
continue
try:
num_list = [int(x) for x in num_list]
except ValueError:
print("输入错误,请重新输入!")
continue
if not all(1 <= x <= 13 for x in num_list):
print("输入错误,请重新输入!")
continue
expression = calculate(num_list)
if expression:
print("恭喜你,你成功算出了24!")
print(expression + " = 24")
else:
print("很遗憾,你没有算出24。")
if __name__ == '__main__':
main()
```
该程序使用了`itertools`模块中的`product`函数,生成了所有可能的运算符组合。然后通过`eval`函数计算表达式结果,判断是否等于24。程序会一直循环等待用户输入,直到用户输入了四个合法的数字。如果用户成功算出了24,则程序输出表达式及结果,否则输出失败信息。
阅读全文