长信宫灯的出土:求java算法,要实现算式计算

来源:百度文库 编辑:高考问答 时间:2024/04/29 07:41:21
只要能计算2+3*4/(3+3-8)这类算式计算即可

按照符号的优先级别进行递归调用

算法可以这样:
写一个类,专门计算字符串算式,而且是先计算乘除后计算加减的,里面包含一个返回结果的属性或方法;
然后另写一个类,实现读入字符串,若字符串中有括号,则把括号中的字符串用上面那个类进行计算,返回结果,把原来的字符串和括号替换掉,以这样的递归调用解决掉所有的括号,最后就只剩下一个没有括号的字符串,再用上面的类计算出结果便OK了

我以前有编过这样的程序,而且比这个还要复杂一点的,也是按这种思路进行的。这是可以实现的。

2+3*4/(3+3-8)

就是这么计算的~