【发布时间】:2014-11-25 03:42:57
【问题描述】:
24 游戏是一种算术游戏,其目标是找到一种方法来处理四个整数,从而使最终结果为 24。可以使用任何数字顺序的加法、减法、乘法或除法来计算从 1 到 9 的四位数运算等于 24。
规则很简单:每个数字只需要使用一次,并且只有从用户那里读取的 4 个数字才能找到一个方程来获得 24。
例如,对于数字 4、7、8、8,可能的解决方案是:(7-(8/8))*4=24。
大多数 4 位数字集可以用于多个等式,得出 24:例如输入:2、2、4 和 7 可以多种方式使用以获得 24:
2+2*(4+7) = 24
2+2*(7+4) = 24
(2+2)*7-4 = 24
(2*2)*7-4 = 24
2*(2*7)-4 = 24
还有 4 个数字的组合不能得出任何等于 24 的等式。例如 1,1,1,1。在这种情况下,您的程序应该返回没有可能等于 24 的方程。
注意:虽然我们将输入 4 个介于 1 和 9 之间的整数,但我们将使用双精度数来计算所有操作。例如,数字 3,3,8,8 可以组合成公式:8/(3-8/3) = 24。
工作流程:您的程序应该从用户那里读取 4 个数字并输出一个得出 24 的公式。算法应该枚举 4 个数字的所有可能顺序、所有可能的组合以及所有可能的公式。这个项目不需要 GUI 我需要一种方法的帮助,该方法将对所有 64 个可能的组合的运算符进行洗牌,因此每个方程中使用了 4 个运算符和 3 个运算符,并且还考虑了方程中的括号。我不知道从哪里开始。
【问题讨论】:
-
"I have no idea where to begin."逐步编写程序。首先编写一个程序,接受用户的输入并将其打印出来。然后开始添加功能,直到它完成您需要的所有操作。 -
我做了那部分我只是需要帮助来弄清楚功能。我将如何编写一种方法来对运算符进行洗牌以生成每个可能的方程。我编写了一个置换方法,它返回一个包含 24 个 abcd 组合的二维数组。我只是想知道如何实际实现另一种方法来让运算符形成方程。
-
显示你写的代码。
标签: java algorithm math for-loop recursion