2016-03-01 20 views
1

我有一个给定的数字n,4个操作数a1,a2,a3,a4和4运算符+, - ,*,/在Java中。我需要测试是否可以用操作符安排操作数,以便它们形成等于给定数字的数学表达式,或者至少与它的值最接近。我不需要使用所有的操作数,每个操作数只能使用一次。我不是要求某人给我一些代码,只是为了解释它是否可能,或者是否有某个库。谢谢。安排操作数和操作符以获得编号

+0

如果你被要求这样做,它应该有可能的解决方案。你可能想看看[this](http://stackoverflow.com/questions/3422673/evaluating-a-math-expression-given-in-string-form)问题 – SomeJavaGuy

+0

你是否需要准确地使用每个数字一旦? – Bathsheba

+0

是的。我忘了提到这一点。 –

回答

3

这是完全可能的。您必须为e-g执行所有排列,有两个操作数a,b和只有一个操作符-。在这种情况下,可能的排列是a-bb-a。如果所有排列都已完成并且您无法获取该数字,则必须有此功能的结果,如number can't be arrived(可能的输出之一)。

Here是一个用于做基本置换的递归程序。你的逻辑应该与此类似。

Here是执行准备好的表达,得到的结果

+0

这听起来不错。谢谢。 –