• 洛谷 P1449 后缀表达式


    题目描述

    所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。

    如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。

    输入输出格式

    输入格式:

    输入:后缀表达式

    输出格式:

    输出:表达式的值

    输入输出样例

    输入样例#1:
    3.5.2.-*7.+@
    输出样例#1:
    16

    说明

    字符串长度,1000内。

    栈。

    还是我太年轻。。竟然认为'.'没用

    屠龙宝刀点击就送

    #include <cstring>
    #include <ctype.h>
    #include <cstdio>
    int stack[100005],top,x=0;
    char ch;
    int main()
    {
        for(;1;)
        {
            scanf("%c",&ch);
            if(ch=='@') break;
            if(isdigit(ch)) x=x*10+ch-'0';
            else if(ch=='.') stack[++top]=x,x=0;
            else
            {
                int a=stack[top--],b=stack[top--];
                if(ch=='+') stack[++top]=a+b;
                else if(ch=='-') stack[++top]=b-a;
                else if(ch=='*') stack[++top]=a*b;
                else if(ch=='/') stack[++top]=b/a;
            }
        }
        printf("%d
    ",stack[1]);
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    oracle Blob处理
    开机启动
    获取本机IP
    MSSQL通用分页过程
    转:Delphi2010小写金额转大写金额的源代码
    HWND Handle HModule区别
    常见问题
    Oracle ORA-01033: 错误解决办法
    lvs- lvs(DR模式)+keepalived
    lb-常用的负载均衡软件
  • 原文地址:https://www.cnblogs.com/ruojisun/p/7387612.html
Copyright © 2020-2023  润新知