首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反向波兰符号双除法误差

反向波兰符号双除法误差
EN

Stack Overflow用户
提问于 2013-08-11 21:37:11
回答 1查看 416关注 0票数 0

我编写了这个比较常见的算法,它解析给定的输入,然后将其从infix转换为后缀。

我正在处理的问题是事件的顺序。很可能我误解了后缀手术..。

假设我想计算10/(2-4)/5 :答案应该是-1,但是,我得到的答案是-25。

-,5,/,/

为什么?因为我的“后缀”先做-2/5,然后除以10/-4,这显然是错误的:

我错过了什么简单的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-11 21:44:08

表达式在同一级别上有两个除法操作(没有括号)。假设除法将左向右关联,则表达式应解释为

代码语言:javascript
复制
(10 / (2 - 4)) / 5

然后,以后缀表示法将其转换为以下内容:

代码语言:javascript
复制
10 2 4 - / 5 /

您最终得到的后缀将对应于顺序:

代码语言:javascript
复制
10 / ((2 - 4) / 5)

从解析树生成反向波兰应该可以解决问题,前提是解析树是从infix表达式中正确生成的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18176952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档