【问题标题】:Arranging operands and operators to get number排列操作数和运算符以获取数字
【发布时间】:2016-03-01 13:18:29
【问题描述】:

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

【问题讨论】:

  • 如果您被要求这样做,它应该是可能的。你可能想看看this question
  • 每个数字需要只使用一次吗?
  • 是的。我忘了提。
  • 你会使用正常的运算符优先规则吗?大概是不能用括号吧?
  • 是的,只有一个给定的数字。正常规则。

标签: java algorithm math operators expression


【解决方案1】:

这是绝对可能的。你必须做所有可能的排列,例如有两个操作数 a,b,只有一个操作符 -。在这种情况下,可能的排列是a-bb-a。如果所有排列都完成并且您无法获得数字,则此函数必须有类似number can't be arrived(可能的输出之一)的结果。

Here 是一个用于进行基本排列的递归程序。您的逻辑应该与此类似。

Here 是执行你准备好的表达式并得到结果的解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2017-06-28
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多