2

我有 4 个整数(a、b、c、d)和 3 个表示数学运算符(+、-、*、/)的字符串。我想检查是否可以从这些整数和字符串中得出某个数字 (e)。

例如:

a + b * c - d == e;

每个整数只能使用一次,运算符可以多次使用,但每 2 个整数之间只能使用一次。

谁能帮我?

4

1 回答 1

3

首先把你的问题分解成更小的部分。

我将其分解如下:

  1. 计算 4 个整数的所有排列。应该有 4!(24) 个。(查找生成排列)

  2. 计算可能发生的 3 种操作的所有组合。其中应该有 3*3 (9) 个。(查找生成具有重复的排列)。

  3. 现在您已经掌握了整数的顺序和操作的顺序,请尝试计算 e。(交织组合:即 1 来自 int,1 来自 ops,2nd 来自 int,第二个来自 ops 等......)这应该使用所有 int 排列和所有 op 组合来完成。

  4. 在评估所有方程(其中 216 个)后,如果没有一个方程等于 e,则没有解。

于 2012-05-03T16:48:35.640 回答