- 6
- 0
- 约7.55千字
- 约 9页
- 2026-03-12 发布于北京
- 举报
游戏之乐_1.16_24点游戏
问题描述
给玩家4每的面值在1-13之间,允许其中有数值相同
的牌,采用加、减、乘、除四则运算,允许中间运算存在小数,并且
可以使用括号,但每只能用一次。构造表达式,使其结果为24.
解决方案
穷举法,穷举所有可能的情况(运算符、数字和括号的所有排列组
合形式)。
例如:有四个数ABCD,则可能的情况有:A+B*C-D(A+B)*C-D
(A+B)*(C-D)等等各种情况。
怎么穷举呢?可以这样:
先把四个数存放到数组中,选取两个数,进行各种运算,并保存
结果(运算结果保存到原数组,计算式子保存到一个字符数组中),这
样数组中就只有3个数了,又选两个进行各种运算,这样下去,当得
到结果为24时,就输出字符数组中保存的计算式。
C源码见代码1所示:C++源码见代码2所示:
优化
可以根据加法交换律和乘法交换律,进行简单的优化。如:A+B
和B+A的结果一样,就只需要对其中一个进行计算就行了,因此在
A+B(A*B)运算时,加一个条件
原创力文档

文档评论(0)