P1449 后缀表达式

分析:

简单的模拟题。

熟练容器stack的话很容易解决。

stack,栈,有先进后出的特性。

比如你有一个箱子,你每放进第一个数时,就往箱底放,放第二个数时就在第一个数的上面放,而这两个数取出时,先取出第二个数,才能取出第一个数。

详细请看代码

 #include<iostream>
#include<cstdio>
#include<stack> // 头文件
using namespace std; char c;
stack<int> q; // 声明 int main()
{
int n = , num;
while((c = getchar()) && c != '@'){ // 输入,以 @ 结束
// 对数字的处理,
if(c >= '' && c <= ''){
num = c - '';
if(n != ) {
num += q.top() * n; // .top() q 最后放入的数
q.pop(); // .pop() 去掉 q 最后放入的数
q.push(num); // .push(x) 往 q 放进一个数
}
else {
q.push(num);
n = ; // 处理一下数字
}
}
if(c == '.'){ // 输入一个数字完毕,归个位
n = ;
} // 判断运算符
int a, b;
if(c == '+'){
a = q.top(); q.pop();
b = q.top(); q.pop();
a += b;
q.push(a);
}
if(c == '-'){ // 注意被减数与减数
a = q.top(); q.pop();
b = q.top(); q.pop();
b -= a;
q.push(b);
}
if(c == '*'){
a = q.top(); q.pop();
b = q.top(); q.pop();
a *= b;
q.push(a);
}
if(c == '/'){ // 注意被除数与除数
a = q.top(); q.pop();
b = q.top(); q.pop();
b /= a;
q.push(b);
}
}
cout << q.top() << endl; // 输出
return ;
}

AC代码

最新文章

  1. 第二十六篇:两个SOUI新控件 ---- SListView和SComboView(借用Andorid的设计)
  2. thinkphp3.2.3在框架截取文字
  3. Unix 用gdb分析core dump文件
  4. pomelo获取客户端IP
  5. Yii的学习(3)--查询生成器 (Query Builder)
  6. IntelliJ IDEA 14注册码
  7. 轮播图切换 纯html+js+css
  8. 用于防SQL注入的几个函数
  9. JavaScript-4.6鼠标事件监听,获取鼠标坐标window.event---ShinePans
  10. Android_模拟时钟内时针、分针触摸转动
  11. location的使用
  12. POJ [P3020] Antenna Placement
  13. (办公)面试java设计模式
  14. Codeforces 348D Turtles LGV
  15. java开发mis系统所需技术及其作用
  16. Drools 语法
  17. 关于rawurldecode PHP自动解码
  18. DZ拿shell总结
  19. [oracle] update语句卡住问题
  20. 主机屋MySQL数据库链接

热门文章

  1. springboot自定义消息转换器HttpMessageConverter Spring Boot - 使用Gson替换Jackson
  2. sdcard不可执行.
  3. pandas-08 pd.cut()的功能和作用
  4. Java8新特性:接口
  5. HTML实用文本框样式
  6. 【强烈推荐】ok-admin 一个好看又好用的后台模版!!!
  7. Oracle数据库之初识部分知识
  8. jQuery设置样式css
  9. Eclipse不支持tomcat8_compiler编译级别选不到1.8
  10. scrapy 爬虫中间件 httperror中间件