1364_计算后缀表达式的值

2022-5-16 18:17| 发布者: Hocassian| 查看: 30| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-2-89503819270400-Problem List-采集的数据-后羿采集器.html

Pro.ID

1364

Title

计算后缀表达式的值

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1364

AC

42

Submit

261

Ratio

16.09%

时间&空间限制

  • Time Limit: 400/200 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others)
  • 描述

    给出一个后缀表达式(欲知什么是后缀表达式?请google一下),请计算出它的结果。

    后缀表达式只含 加、减、乘、除以及求模运算。其中除法是整数除法,即其结果不含小数部分。

    输入

    只有一行(长度不超过一百),一条后缀表达式。后缀表达式中的每个操作数均为非负整数,且不超过9。

    测试数据保证后缀表达式有意义,即不出现除数为零的情况。

    输出

    Description

    给出一个后缀表达式(欲知什么是后缀表达式?请google一下),请计算出它的结果。

    后缀表达式只含 加、减、乘、除以及求模运算。其中除法是整数除法,即其结果不含小数部分。

    Input

    只有一行(长度不超过一百),一条后缀表达式。后缀表达式中的每个操作数均为非负整数,且不超过9。

    测试数据保证后缀表达式有意义,即不出现除数为零的情况。

    Output

    计算并输出该后缀表达式的结果。保证其结果不超过int的表示范围。

    Sample Input

    57-2*8+2/

    Sample Output

    2

    Hint

    伪代码如下:

    while有输入符号
    {
       读入下一个符号
       IF是一个操作数
           入栈
       ELSE IF是一个操作符
       {
           有一个先验的表格给出该操作符需要n个参数(众所周知本题的运算都是二元运算)
           IF堆栈中少于n个操作数
               (错误) 用户没有输入足够的操作数
           Else
               n个操作数出栈
           计算操作符
           将计算所得的值入栈
       }
    }
    IF栈内只有一个值
       这个值就是整个计算式的结果
    ELSE多于一个值
       (错误) 用户输入了多余的操作数

    Author

    样例输入

    57-2*8+2/

    样例输出

    2

    提示

    伪代码如下:

    while有输入符号
    {
       读入下一个符号
       IF是一个操作数
           入栈
       ELSE IF是一个操作符
       {
           有一个先验的表格给出该操作符需要n个参数(众所周知本题的运算都是二元运算)
           IF堆栈中少于n个操作数
               (错误) 用户没有输入足够的操作数
           Else
               n个操作数出栈
           计算操作符
           将计算所得的值入栈
       }
    }
    IF栈内只有一个值
       这个值就是整个计算式的结果
    ELSE多于一个值
       (错误) 用户输入了多余的操作数

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部