【题目描述】

从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。
比如,16–9*(4+3)转换成后缀表达式为:16□9□4□3□+*–,在字符数组A中的形式为:

栈中的变化情况:

运行结果:-47

提示:输入字符串长度小于250,参与运算的整数及结果之绝对值均在2^64范围内,如有除法保证能整除。

【输入】

一个后缀表达式。

【输出】

一个后缀表达式的值。

【输入样例】

16 9 4 3 +*-@

【输出样例】

-47

【源程序】

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define PI acos(-1.0)
#define E 1e-9
#define INF 0x3f3f3f3f
#define LL long long
const int MOD=1000000007;
const int N=10000+5;
const int dx[]= {-1,1,0,0};
const int dy[]= {0,0,-1,1};
using namespace std;
char str[N];
stack<LL> S;
int main(){gets(str);int len=strlen(str)-1;for(int i=0;i<len;i++){switch(str[i]){case '+':{LL y=S.top();S.pop();LL x=S.top();S.pop();S.push(x+y);break;}case '-':{LL y=S.top();S.pop();LL x=S.top();S.pop();S.push(x-y);break;}case '*':{LL y=S.top();S.pop();LL x=S.top();S.pop();S.push(x*y);break;}case '/':{LL y=S.top();S.pop();LL x=S.top();S.pop();S.push(x/y);break;}case '@':i=len;break;default:{LL temp=0;while(str[i]!=' ')temp=temp*10+str[i]-'0',i++;S.push(temp);break;}}}cout<<S.top()<<endl;return 0;
}

后缀表达式的值(信息学奥赛一本通-T1331)相关推荐

  1. 信息学奥赛一本通 1331:【例1-2】后缀表达式的值

    [题目链接] ybt 1331:[例1-2]后缀表达式的值 [题目考点] 1. 表达式求值 2. 表达式树 表达式树:一棵表达式树可以表示一系列的运算. 表达式树中的结点包括运算符与数值 struct ...

  2. 信息学奥赛一本通 1358:中缀表达式值(expr)

    [题目链接] ybt 1358:中缀表达式值(expr) [题目考点] 1. 表达式求值 中缀表达式转后缀表达式 后缀表达式求值 [解题思路] 由于题目要求做中缀表达式转为后缀表达式,而后求值.那么这 ...

  3. 信息学奥赛一本通1358 中缀表达式值(expr) ()

    1358:中缀表达式值(expr) 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 4486     通过数: 1536 [题目描述] 输入一个中缀表达式(由0-9 ...

  4. 信息学奥赛一本通 1962:【13NOIP普及组】表达式求值 | 洛谷 P1981 [NOIP2013 普及组] 表达式求值

    [题目链接] ybt 1962:[13NOIP普及组]表达式求值 洛谷 P1981 [NOIP2013 普及组] 表达式求值 [题目考点] 栈 中缀表达式转后缀表达式,后缀表达式求值 中缀表达式求值 ...

  5. 中缀表达式值(信息学奥赛一本通-T1358)

    [题目描述] 输入一个中缀表达式(由0-9组成的运算数.加+减-乘*除/四种运算符.左右小括号组成.注意"-"也可作为负数的标志,表达式以"@"作为结束符),判 ...

  6. 信息学奥赛一本通——1012:计算多项式的值

    大家好 今天给大家带来<信息学奥赛一本通--1012:计算多项式的值> 看题目: 1012:计算多项式的值 时间限制: 1000 ms         内存限制: 65536 KB 提交数 ...

  7. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  8. 信息学奥赛一本通 1356:计算(calc)

    [题目链接] ybt 1356:计算(calc) [题目考点] 1. 表达式求值 中缀表达式求值 2. 表达式树 表达式树:一棵表达式树可以表示一系列的运算. 表达式树中的结点包括运算符与数值 str ...

  9. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

最新文章

  1. android设置gradle位置,android studio gradle 位置更改
  2. 无人机飞控开发平台培训理论课程——MSP430最小系统
  3. lintcode 最大子数组III
  4. linux-文件类型与查看文件型
  5. 今天学到的几个有用的awk命令用法
  6. python异常处理与导入模块与导入包
  7. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_5_函数式接口作为方法的参数案例...
  8. LINQ TO XML 应用之 Win8 Metro 开发
  9. QAV250四轴穿越机安装全程详解(多图)
  10. 微信HOOK协议软件,已实现云控,将微信的效率最大化,目前测试中
  11. 机器学习分类模型评价指标之混淆矩阵
  12. vue实现九宫格抽奖
  13. 单片机p1口亮灯c语言代码,单片机闪烁灯汇编语言源代码大全(四款闪烁灯的汇编语言源代码)...
  14. 无法将“obj\Debug\net6.0\MvcMovie.dll”复制到“bin\Debug\net6.0\MvcMovie.dll
  15. ITIL 4 讲解:事态、事件、灾难流程如何界定?
  16. HBase初识之学生心得总结
  17. Python3安装bz2
  18. 达芬奇大王的链表贪吃蛇(java)
  19. 如何添加共享计算机用户,如何正确设置共享
  20. arch 服务器系统,arch linux服务器

热门文章

  1. 回顾计算机产业发展的4个阶段:美国企业统治全球市场了吗?
  2. 《2018区块链整体架构及应用》(PPT全文)
  3. html中加入scrip代码,HTML script 标签 | 菜鸟教程
  4. 乖乖,腾讯天美研发20万月薪刷爆朋友圈,网友:小丑竟是我自己
  5. 五年了,你还在用junit4吗?
  6. 架构专家梁勇:哈啰在分布式消息治理和微服务治理中的实践
  7. 漫画:程序员和产品经理撕得真是太太太太厉害了
  8. 刚刚,Redis公布了5.0版本12项新特性
  9. 基于Hadoop2.7.3集群数据仓库Hive1.2.2的部署及使用
  10. Ubuntu 16.04 Hadoop-2.7.3全分布模式 + eclipse hadoop