java表达式计算

问题描述

  输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。

输入格式

  输入一行,包含一个表达式。

输出格式

  输出这个表达式的值。

样例输入

1-2+3*(4-5)

样例输出

-4

数据规模和约定

  表达式长度不超过100,表达式运算合法且运算过程都在int内进行。


读者123
浏览 2410回答 2
2回答

慕粉1529473653

根据算术四则运算的规则:         a.  从左算到右         b. 先乘除,后加减         c. 先括号内,后括号外得到算符优先表,作为计算表达式计算顺序的依据。如:q1为先来的算符,q2为后来的算符。如3+5+7,前面的+为q1,后面的+为q2,q1>q2。算法思想1. 设定两栈:运算符栈,操作数栈;2.  栈初始化:设操作数栈为空;运算符栈的栈底元素为表达式起始符‘#’;3.  依次读入字符:是操作数则入操作数栈,是运算符则要判断其与运算符栈栈顶元素的优先级:     if 栈顶算符 > 运算符:则运算符栈出一算符,操作数栈出两操作数,计算,结果压入操作数栈;           运算符 = 栈顶算符:运算符栈出一算符与读取到的算符抵消;          栈顶算符 < 运算符:压入算符栈。4.  重复执行第3小点,直到读取到‘#’号,与算符栈顶的‘#’相抵消,最后算符栈为空,操作数栈只有一数值,即为结果。    编程的东西自己去练练手,实现的流程都在上面了

沥莫

想问一下,你等等程序写好了吗?可以借鉴一下吗
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java