本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S1存放数字,另一个堆栈 S2存放运算符。计算器的最下方有一个等号键,每次按下这个键,计算器就执行以下操作:

1、从 S1中弹出两个数字,顺序为 n1和 n2;
2、从 S2中弹出一个运算符 op;执行计算 n2 op n1;
3、将得到的结果压回 S1。
4、直到两个堆栈都为空时,计算结束,最后的结果将显示在屏幕上。

输入格式:
输入首先在第一行给出正整数 N(1<N≤103),为 S1​中数字的个数。

第二行给出 N 个绝对值不超过 100 的整数;第三行给出 N−1 个运算符 —— 这里仅考虑 +、-、*、/ 这四种运算。一行中的数字和符号都以空格分隔。

输出格式:
将输入的数字和运算符按给定顺序分别压入堆栈 S​1和 S2,将执行计算的最后结果输出。注意所有的计算都只取结果的整数部分。题目保证计算的中间和最后结果的绝对值都不超过 109 。

如果执行除法时出现分母为零的非法操作,则在一行中输出:ERROR: X/0,其中 X 是当时的分子。然后结束程序。

输入样例 1:
5
40 5 8 3 2
/ * – +

输出样例 1:
2

输入样例 2:
5
2 5 8 4 4
* / – +

输出样例 2:
ERROR: 5/0

分析:使用In存储输入数字,Record存储运算符。因为模拟堆栈,所以输入从n-1开始反向输入,Sum存储最终答案~

#include <bits/stdc++.h>
using namespace std;
int n, In[1000], Sum;
char oper, Record[100];
int main() {cin >> n;for (int i = n - 1; i >= 0; i--) cin >> In[i];for (int i = n - 1; i > 0; i--) cin >> Record[i];Sum = In[0];for (int i = 1; i < n; i++) {oper = Record[i];if (oper == '+') Sum = In[i] + Sum;else if (oper == '-') Sum = In[i] - Sum; else if (oper == '*') Sum = In[i] * Sum;else {if (Sum == 0) {cout << "ERROR: " << In[i] << "/0";return 0;}Sum = In[i] / Sum;}}cout << (int)Sum;return 0;
}

L2-033 简单计算器 (25 分)-PAT 团体程序设计天梯赛 GPLT相关推荐

  1. L2-040 哲哲打游戏 (25 分)-PAT 团体程序设计天梯赛 GPLT

    哲哲是一位硬核游戏玩家.最近一款名叫<达诺达诺>的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切! 为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择 ...

  2. L2-039 清点代码库 (25 分)-PAT 团体程序设计天梯赛 GPLT

    上图转自新浪微博:"阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍.请设计一个程序,能够将代码库中所有功能重复的代码找出.各位大佬有啥想法,我当时就懵了,然 ...

  3. L2-038 病毒溯源 (25 分)-PAT 团体程序设计天梯赛 GPLT

    病毒容易发生变异.某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化. 现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链. 在此假设给 ...

  4. L2-037 包装机 (25 分)-PAT 团体程序设计天梯赛 GPLT

    一种自动包装机的结构如图 1 所示.首先机器中有 N 条轨道,放置了一些物品.轨道下面有一个筐.当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中.当 0 号按钮被按下时,机械手将抓 ...

  5. L2-035 完全二叉树的层序遍历 (25 分)-PAT 团体程序设计天梯赛 GPLT

    一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树.对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树 ...

  6. L2-031 深入虎穴 (25 分)-PAT 团体程序设计天梯赛 GPLT

    著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一个房间,或者又有很多条路,同样是每条 ...

  7. L2-030 冰岛人 (25 分)-PAT 团体程序设计天梯赛 GPLT

    2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名.好事者发现冰岛人的名字后面似乎都有个"松"(son),于是有网友科普如下: 冰岛人沿用的是维京人古老的父系姓制,孩子的 ...

  8. L2-029 特立独行的幸福 (25 分)-PAT 团体程序设计天梯赛 GPLT

    对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68, ...

  9. L2-036 网红点打卡攻略 (25 分)-PAT 团体程序设计天梯赛 GPLT

    一个旅游景点,如果被带火了的话,就被称为"网红点".大家来网红点游玩,俗称"打卡".在各个网红点打卡的快(省)乐(钱)方法称为"攻略".你的 ...

最新文章

  1. 分析apply,call方法
  2. 成功解决UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9a in position 0: invalid start byte
  3. cambridge ifm strategic roadmapping takecontrol in times of uncerntainty
  4. 多线程-- ThreadLocal
  5. 数据挖掘、机器学习书籍推荐!!
  6. C#码农的大数据之路 - 使用C#编写MR作业
  7. 3.5 卷积神经网络进阶-Inception-mobile_net 实战
  8. SQL 时间截按月分组查询
  9. 【数据结构笔记04】线性结构:线性表及其实现
  10. java种子_MC速通各类种子(java版,更新至6.26)
  11. 解决微信小程序图片过大上传失败问题
  12. 常微分方程的解析解(方法归纳)以及基于Python的二阶微分方程边值问题的数值算例实现
  13. 沧小海基于xilinx srio核的学习笔记之第四章 Xilinx SRIO的示例分析(一)
  14. 黑群晖系统备份与恢复
  15. 上海计算机科学大学排名,2019上海软科世界一流学科排名计算机科学与工程专业排名卡耐基梅隆大学排名第4...
  16. openlayers中比例尺的计算原理
  17. 栈——后进先出(LIFO:last in first out)
  18. cygwin 编译android,再次在 cygwin 下编译 Android toolchain
  19. webkit 学习笔记 - 1. 浏览器与浏览器内核
  20. 【论文笔记】Question Answering over Freebase with Multi-Column Convolutional Neural Networks

热门文章

  1. java match parent_java.lang.IllegalStateException: The specified child already has a parent
  2. cocos2dx游戏开发简单入门视频教程 (cocos2d-x)- 第3天
  3. react中使用charles实现本地数据mock
  4. setInterval、setTimeout
  5. 解读百度AutoDL:打破SOTA纪录的神经架构搜索是如何炼成的
  6. 用户自定义函数代替游标进行循环拼接
  7. python高阶函数——sorted排序算法
  8. python---购物扩展
  9. ASP.NET MVC模型绑定int超出范围时
  10. 理解嵌入式开发中的一些硬件相关的概念