我有一个给定的数字 n,4 个操作数 a1、a2、a3、a4 和 4 个 Java 运算符 +、-、*、/。我需要测试我是否可以用运算符排列操作数,以便它们形成一个等于给定数字的数学表达式,或者至少与它的值最接近。我不需要使用所有操作数,每个操作数只能使用一次。我并不是要别人给我代码只是为了解释是否可行,或者是否有一些库可以做到这一点。谢谢。
最佳答案
这是绝对可能的。您必须对例如有两个操作数 a、b 并且只有一个运算符 -
进行所有可能的排列。在这种情况下,可能的排列是 a-b
和 b-a
。如果所有排列都已完成,但您无法获得数字,则此函数一定会产生类似 number can't be arrived
的结果(可能的输出之一)。
Here是一个用于进行基本排列的递归程序。你的逻辑应该与此类似。
Here是执行您准备好的表达式并获得结果的解决方案
关于java - 排列操作数和运算符以获得数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35724030/