问题标签 [rpn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11421 浏览

c++ - 后缀符号 C++ 的中缀

你好 Stack 我目前正在尝试编写一个 RPN 转换器,而且我是 C++ 新手。但我遇到了问题。希望我能详细解释问题。我使用数组来堆叠我的运算符。让我们使用示例“5 + 8”当我开始:

出于某种原因,它会将运算符推入堆栈,但随后它不会将运算符添加到我也添加我的元素的后缀字符串变量中。输出会像“5 8”我看着我的流行功能,这似乎是正确的,但我很难过。如果你能带领我朝着正确的方向前进,那就太好了。

这是我的完整代码:

此外,如果您知道任何关于 C++ RPN 转换器的好资源站点,请随时分享,因为这将是一个非常大的帮助!我要随机算法。我在谷歌上找到的。

0 投票
1 回答
758 浏览

clojure - Clojure PN (java.lang.ClassCastException)

我正在使用 Clojure 进行代码高尔夫挑战,其目的是编写一个函数,该函数评估并返回波兰表示法表达式的值。下面是我的代码。

请记住,这是打高尔夫球的代码(并不意味着可读)。

简而言之,该函数接受一个字符串,然后将该字符串拆分为一个向量。Reduce 对向量进行迭代,并对向量中的 n-1 个元素应用表达式。结果是一个字符串,Clojure 应该能够用load-string.

如果我声明一个e使用该值调用的 var,"+ 3 5"则只运行函数中的 reduce,"(+ 3 5)"预计会返回。但是当我调用该函数时,(p "+ 3 5")我得到以下错误。

不知道这里发生了什么。

0 投票
2 回答
164 浏览

clojure - 了解 Clojure 方式

我真的很想精通用于 Web 应用程序的 Clojure/Clojurescript。现在我正在制作简单的命令行应用程序来感受这种语言。

但是现在很难掌握如何在没有可变变量的语言中完成工作的工作流程。

我的问题是:我正在制作一个小的RPN计算器,用户可以在其中输入数字以添加到堆栈中,还可以对堆栈进行数学运算:

所以我的问题是如果没有变量,如何跟踪堆栈。我首先使用 Java 堆栈在 Java 中编写了这个,显然在 Clojure 中这将是一种非常不同的方法,但我不太确定解决问题的方法。

0 投票
2 回答
1586 浏览

c++ - 计算具有两个以上操作数的后缀表达式的问题

我需要创建一个 RPN(后缀符号)计算器,它可以进行简单的操作(+、-、*、/),同时使用链表来维护堆栈。我已经完成了大部分工作,但遇到了一些问题。我可以用一个操作数计算任意两个数字(例如:5 5 + = 10),但不能做更多的事情。我在网上做了一些研究,并观看了一些 YouTube 视频以了解我现在所处的位置,但大多数都使用堆栈引用来做到这一点。我试图结合这方面的教程,以及如何制作我自己的堆栈。

我对此很陌生,对如何计算更大的表达式(例如:5 5 5 + + = 15)非常迷茫,而且我还需要检查错误,我已经完成了一些,但是我正在苦苦挣扎的是“太多的操作符”和“太多的操作数”。由于运算符太多,我假设它与无法弹出一个值有关,因为那里没有一个值,但这是我所能得到的(如果它是正确的,仍然不太确定如何实现它)。对于这三件事中的任何一件的任何帮助,或者您可以在此处看到的任何其他内容,将不胜感激。

0 投票
1 回答
3931 浏览

c++ - 后缀符号计算器 (RPN) 问题 C++

讨厌几天前在同一程序上获得帮助后回来寻求帮助,但我真的很难完成这个程序。简而言之,我需要创建一个带有链表堆栈的后缀符号计算器 (RPN),它允许我执行诸如 5 5 5 + + (=15) 之类的表达式。我现在已经设法完成了主要的计算部分,但我正在努力处理两个错误。其中之一是“操作符过多”,另一个是“操作数过多”。目前正在研究“太多操作员”,我觉得我很接近但不能完全到达那里。

如果用户在第一个条目上输入 5 5 ++,它会抓住它并说“操作数太多”。但是,如果之前计算的堆栈中已经有东西,然后他们键入相同的表达式 5 5 ++,这并不是说堆栈是空的,而是输出一个使用前一个数字的答案。如果有人能看到我在这里出错的地方,并指出我找出另一个错误“太多运算符”(例如:5 5 5 +)的方向,那将不胜感激。再次提前感谢。

(在搞砸了更多之后,似乎我做的计算越多,实际上需要放置更多的运算符才能被认为是空的。我猜我需要在每个表达式之前的某个地方popVal,但不知道放在哪里,因为我尝试了很多地方但它不起作用)

0 投票
1 回答
1167 浏览

python - Python中的逆波兰计算器异常处理

所以我几乎完成了这个程序,但我不知道如何根据这些规则进行适当的异常处理:

您必须处理以下情况(错误):

运算符过多 (+ - / *)

操作数过多(双精度数)

被零除

迅速的

对于此作业,您将编写一个程序,该程序将计算用户提供的逆波兰表达式的结果。

您必须使用链表来维护此程序的堆栈(堆栈的数组实现不会获得全部功劳)。

您必须处理以下情况(错误): 运算符过多(+ - / *) 操作数过多(双精度数) 除以零

该程序将接受一个波兰表达式,该表达式将运算符和操作数用一个空格分隔,并以新行结束表达式。

程序将继续获取和评估表达式,直到用户在一行中输入零 (0),然后是新行。

您的示例输出应该显示所有错误条件的处理以及所有运算符的使用。

示例 IO:(注意:输出格式不是关键问题)

程序

这是我到目前为止得到的:

谢谢你们的帮助!

0 投票
3 回答
408 浏览

java - Postfix calc 仅适用于适当的间距(即 3 14 2*7/ 引发异常)

发布的代码适用于操作,但如果运算符和操作数之间没有间距,则不会工作。

我得到了 4 个表达式来计算

  1. 10 2 8 * + 3 -

  2. 3 14+2*7/

  3. 4 2 + 3 15 1 - * +

  4. 1 2 + 3 % 6 - 2 3 + /

(间距很重要)

表达式二是不会使用我当前的计算器计算的

这是我的代码

这是堆栈跟踪

0 投票
2 回答
5401 浏览

algorithm - 处理调车场算法的一元减号

在将中缀表达式转换为后缀表达式时,是否有更好的方法来处理一元“-”?

显而易见的是,每个一元“-”都带有 0 前缀。有人知道更好的实现吗?谢谢!

0 投票
1 回答
82 浏览

java - 某些代码循环出错

我设计了一个 RPN 算法来计算给计算器求和的结果。我的 RPN 代码如下:

如果我给代码做以下计算:

它给出以下输出:

所以在处理 [1.5, 11.0, -, 2.0, /] 时会出现错误

但是,如果我最初给它以下计算:

它给出了正确的答案:

有人可以帮忙吗:)

ps对不起这个长问题

0 投票
3 回答
156 浏览

java - 从列表中计算答案

我必须在java中制作一个能够使用括号,加号,减号,除法和乘法的计算器,到目前为止我已经得到它,所以如果用户要输入:

14 * ( 2 - ( 3 / 2 ) )

然后它返回一个 ArrayList 为:

这就是我想要的

然后我如何将“/”应用于 2 和 3 以获得:

然后以此类推,所以 '-' 到 2 和 1.5 得到:

这个进位的最终答案是 7.0

谁能建议如何做到这一点?

为任何帮助干杯:)