日期:2014-05-20  浏览次数:20735 次

一道数学运算题目求牛人解答
String value = "6+-*/2+3-4*2";

要求先乘除后加减 
如果遇到多个运算符取最后一个运算符进行两个数的计算 

看那位大牛会哦

------解决方案--------------------
第一步:化简计算式,化遇到多个运算符时取最后一个,得到一个计算字符串
第二步:从左往右扫比较相邻两个运算符的优先级计算,数据结构用栈式存储

牛人可以两步一起搞!!
------解决方案--------------------
这是编译原理的内容,算数符优先算法,回去看看书。我说说思路。首先要硬编码一个算数符优先表,还要构造两个栈,一个是操作数栈,一个是操作符栈。然后遍历字符串,发现数字,将数字放入操作数栈,然后发现操作符,则将操作符和操作符栈顶进行比较。如果新的算数符优先级大,则进行运算,如果优先级小,则入栈,继续遍历。大概就是这个思路。具体的还是看书吧,呵呵。