我有4个整数(a,b,c,d)和3个表示数学运算符的字符串(+, - ,*,/)。 我想检查是否可以从这些整数和字符串中生成一定数量(e)。
例如:
a + b * c - d == e;
每个int只能使用一次,运算符可以多次使用,但每2个int之间只能使用一次。
任何人都可以帮助我吗?
答案 0 :(得分:3)
首先将问题分解成小块。
我会将其分解如下:
计算4个整数的所有排列。应该有4个!(24)这些。 (查找生成排列)
计算可能发生的3个操作的所有组合。那里 应该是这些中的3 * 3(9)。 (查找生成排列 重复)。
现在您有了整数的顺序,并且操作的顺序尝试并计算e。 (交织组合:即1个来自整数,1个来自操作,2个来自整数,第二个来自操作......)这应该用所有int permeations和所有操作组合来完成。
在评估了所有方程式(其中216个)后,如果它们都不等于e,则没有解决方案。