24点
题目描述
24点是一种益智游戏,任意给出4张扑克牌(不含大小王,J Q K A所代表的值分别为11, 12, 13, 1),可以有重复的数字。对这4张牌所代表的值进行加减乘除运算,不可改变数字的位置,但可使用括号改变运算顺序,最终使得表达式的值为24 。
在answer.py中实现下列函数:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31def twenty_four_calc(filename="24_data.txt"):
"""
:param filename: 文件名,当前文件夹下包含待计算的扑克牌符号的文件,
每行一组(用于评比的文件可能多达数百行),以空格分割,
具体格式如下:
A A 3 4
Q J K 2
10 9 5 A
...
:return : 此函数无返回结果,但需要将所有的解输出至当前文件夹下的
"24_answer_<yourname>.txt" 中,将<yourname>替换为你的
github用户名,文件格式如下:
===A A A A
Impossible
===10 9 5 A
((10+9)+5)/1
10+((9+5)/1)
(10+(9+5))/1
10+(9+(5/1))
(10+9)+(5/1)
((10+9)+5)*1
10+((9+5)*1)
(10+(9+5))*1
10+(9+(5*1))
(10+9)+(5*1)
===A A 3 4
...(省略)
"""
pass
题目要求
- 所有输入输出均以UTF8编码形式处理;
- 只允许使用CPython标准库和内置函数提供的方法、模块;
- 必须能运行出结果;
- Python 版本仅限于 2.7 或 3.4+, 小版本号不限;
- 必须符合PEP8编码风格, 会进行编码风格检查.
评比规则
能完全正确计算出所有解,并输出答案,用时最少。其他基本规则见“帮助”页面。
提交答案
参考 “帮助” 页面