四则运算表达式求值

发布时间:2017-2-22 0:41:35 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"四则运算表达式求值",主要涉及到四则运算表达式求值方面的内容,对于四则运算表达式求值感兴趣的同学可以参考一下。

实现一个正整数加、减、乘、除四则混合运算求值方法 条件限定:   1、 输入的四则运算式由'+','-','*','/'运算符及正整数组成; 2、 无需考虑特殊字符、表达式语法错误及除不尽的情况; 3、 无需考虑运算符的优先级,加减乘除优先级一样,仅按照自左至右的顺序依次计算; 4、 计算的中间数据及最终结果都不会超过65535; 5、 当遇到除数为0时,即刻返回当前已计算结果。 输入 输入字符串 输出 输出计算结果 样例输入 2+1*4-2/5 样例输出 2 public static String fourArithmeticOperations(){ Scanner ss=new Scanner(System.in); String input=ss.next(); char[] c=input.toCharArray(); int len=c.length; String[] strArray=new String[len]; for(int i=0;i<len;i++){ strArray[i]=String.valueOf(c[i]); } int sum=0; Stack<String> stackFirst=new Stack<String>(); for(int i=len-1;i>=0;i--){ stackFirst.push(strArray[i]); } while(!stackFirst.isEmpty()){ String str1=stackFirst.pop(),str2=null,str3=null; if(!stackFirst.isEmpty()){ str2=stackFirst.pop(); } if(!stackFirst.isEmpty()){ str3=stackFirst.pop(); } switch(str2.charAt(0)){ case '+': sum=Integer.valueOf(str1)+Integer.valueOf(str3); if(sum>=65535){return "结果超过65535";} break; case '-': sum=Integer.valueOf(str1)-Integer.valueOf(str3); if(sum>=65535){return "结果超过65535";} break; case '*': sum=Integer.valueOf(str1)*Integer.valueOf(str3); if(sum>=65535){return "结果超过65535";} break; case '/': if(Integer.valueOf(str3)==0){ return str1; }else{ sum=Integer.valueOf(str1)/Integer.valueOf(str3); if(sum>=65535){return "结果超过65535";} break; } } if(!stackFirst.isEmpty()){ stackFirst.push(String.valueOf(sum)); } } return String.valueOf(sum); }    

上一篇:UVALive 2322 Wooden Sticks 截木棍 排序+贪心
下一篇:关注图像检索(1)

相关文章

相关评论