【问题标题】:Is there a way to show the step by step computation of a calculation in Java?有没有办法在Java中显示逐步计算的计算?
【发布时间】:2016-12-01 22:54:19
【问题描述】:

我目前正在构建一个带有计算器的 Android 应用,该计算器不仅可以显示结果,还可以显示它是如何达到该结果的?

是否有任何库或任何方法可以显示以下代码结果的逐步计算?

int a = 5;
int b = 6
int c = 7;
int d = 8;

int result = a + (b * c) / d;

edit:顺便说一下,它是一个物理计算器,所以我有很多公式。我正在使用 exp4j 将字符串公式解析为表达式。这是一个示例

//For formula velocity = (finalVelocity - initialVelocity) / time
String formula1 = "(finalVelocity - initialVelocity) / time";
Double result1 = new ExpressionBuilder(formula)
                     .variables("finalVelocity", "initialVelocity", "time")
                     .build()
                     .setVariable("finalVelocity", 4);
                     .setVariable("initialVelocity", 2);
                     .setVariable("time", 2)
                     .evaluate();
//Sample Output
//velocity = (4 - 2) / 2
//velocity = 2 /2 
//velocity = 1

//For formula finalVelocity = (velocity * time) + initialVelocity
String formula2 = "(velocity * time) + initialVelocity";
Double result12 = new ExpressionBuilder(formula)
                     .variables("velocity", "time" "initialVelocity")
                     .build()
                     .setVariable("velocity", 4);
                     .setVariable("time", 2)
                     .setVariable("initialVelocity", 0)
                     .evaluate();
//Sample Output
//finalVelocity = (4 * 2) + 0
//finalVelocity = 8 + 0
//finalVelocity = 8

对于许多公式,我试图消除每个公式的每个步骤的打印。我正在尝试找到一种方法来拥有一个可以打印任何公式的步骤的函数。

【问题讨论】:

  • 你想要这个结果,还是想要它作为任何算术计算的通用结果?
  • 适用于任何算术计算
  • 请添加示例输入和输出。
  • 我在上面添加了一个示例

标签: java android math arithmetic-expressions operations


【解决方案1】:

考虑到您将使用 BODMAS 来解决该问题,您可以考虑简单地打印每个步骤:

int a = 5;
int b = 6;
int c = 7;
int d = 8;
int ans = (b * c);
System.out.println(ans)
ans /= d;
System.out.println(ans)
ans += a;
System.out.println(ans)

为此,您可以构建一个函数,首先搜索括号并根据BODMAS(先括号,然后是除法,然后是乘法,然后是加法,最后是减法)求解方程中的方程 .
考虑到您将方程作为字符串,您首先搜索 (),然后求解 / 并打印答案,然后是 *+-

【讨论】:

  • 这是我最初的解决方案。我目前正在尝试这个,但它不适合我。好吧,无论如何,我的逻辑可能有问题。谢谢!
  • 这似乎没有回答这个问题,因为回答我的问题的 OP 表明他想要一个通用计算的通用解决方案。这需要您为每个计算单独编写新代码...
  • @Brick 你读过我在代码下面写的吗?我建议创建一个可以处理所有方程的函数。
猜你喜欢
  • 2019-02-06
  • 2015-06-06
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 2012-10-16
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多