您现在的位置是:首页 > 正文

L2-033 简单计算器(Python3)

2024-02-01 02:58:06阅读 2

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

  1. 从 S1​ 中弹出两个数字,顺序为 n1​ 和 n2​;
  2. 从 S2​ 中弹出一个运算符 op;
  3. 执行计算 n2​ op n1​;
  4. 将得到的结果压回 S1​。

直到两个堆栈都为空时,计算结束,最后的结果将显示在屏幕上。

输入格式:

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

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

输出格式:

将输入的数字和运算符按给定顺序分别压入堆栈 S1​ 和 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

提交结果:

代码:

n = int(input())
a = list(map(int, input().split()))[::-1]
b = input().split()[::-1]
flag = True
r = 0
while b != []:
    y = a[0]
    a.pop(0)
    x = a[0]
    a.pop(0)
    tt = b[0]
    b.pop(0)
    if tt == "+":
        x += y
    elif tt == "*":
        x *= y
    elif tt == "-":
        x -= y
    else:
        if y == 0:
            flag = False
            r = x
            break
        x /= y
    a.insert(0, int(x))
if flag:
    print(a[0])
else:
    print("ERROR: {}/0".format(r))

网站文章

  • 基于CART树的银行贷款风控模型实现

    基于CART树的银行贷款风控模型实现

    基于CART树的银行贷款风控模型实现

    2024-02-01 02:57:36
  • 服务器系统吞吐量是否就是带宽,【经验分享】Iperf测试网络吞吐量的方法

    服务器系统吞吐量是否就是带宽,【经验分享】Iperf测试网络吞吐量的方法

    Iperf测试:使用udp设定带宽2M,5M,10M,同时观察对正进行的ping测试的影响。证明iperf使用udp测试/使用一定或最大带宽时,同样能影响tcp协议的流量。任务(1) (使用UDP,参数-u -b 2M)设定不同带宽#iperf3-c192.168.199.18-p54321-i1-t1800-u-b1M(2) 双向同时测试(在任一端多开一个iperf por...

    2024-02-01 02:57:29
  • 阿里云ECS最新的实例规格族有哪些

    阿里云ECS最新的实例规格族有哪些

    通过本文您可以了解目前阿里云在售的所有ECS实例规格族的信息,包括每种规格族的特点,适用场景,以及如何选择符合自己需求的实例规格族。 什么是阿里云ECS实例 实例是能够为您的业务提供计算服务的最小单位,它是以一定的规格来为您提供相应的计算能力的。 根据业务场景和使用场景,ECS实例可以分为多种规格族。同一个规格族里,根据CPU和内...

    2024-02-01 02:57:22
  • android shell hello world,Android Framework 之HelloWorld(三)

    本来是要写一个linux驱动,用于控制led灯的,但考虑到nanopc-T4的内核已经帮我们配置好设备树,已经可以利用/sys/class/gpio操作gpio了,所以没必要再造轮子了!在shell里,可以利用下面的命令控制Led灯的亮与灭:#导出GPIO0_A0管脚echo 32 > /sys/class/gpio/export#让GPIO0_A0管脚作为输出使用echoout >...

    2024-02-01 02:56:52
  • ACM题目里求组合数C(n,m)的方法

    (212条消息) 组合数c(n,m)计算的四种方法_wjl_zyl_1314的博客-CSDN博客_c计算组合数static long[][] longs=new long[2000][1000];//...

    2024-02-01 02:56:43
  • 执行Django 的迁移命令报错[1193, Unknown system variable default_storage_engine]

    执行Django 的迁移命令报错[1193, Unknown system variable default_storage_engine]

    执行Django 的迁移命令报错[1193, Unknown system variable default_storage_engine]

    2024-02-01 02:56:36
  • Android随机点名器,Excel基础知识-详解随机点名器

    Android随机点名器,Excel基础知识-详解随机点名器

    说道制作个案例纯粹意外,我多少有点选择恐惧症,为了不在“选择”上纠结,就自己小玩了一下,就用了程序做了个选择器,其实很简单,就是有小时候玩的“点兵点将",稍微变化就成今天的案例!我一直的原则是用最少的...

    2024-02-01 02:56:30
  • Dubbo的负载均衡策略有哪些?

    主要有random(随机,这种是默认的负载均衡策略)、RoundRobin (轮询)、LeastActive (最少活跃数)、ConsistentHash(一致性hash)可以在暴露服务的时候使用lo...

    2024-02-01 02:56:01
  • 【OJ比赛日历】快周末了,不来一场比赛吗? #05.13-05.19 #14场

    【OJ比赛日历】快周末了,不来一场比赛吗? #05.13-05.19 #14场

    实时聚合多平台的(Kaggle、天池…)和(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注!更多比赛信息见或 点击文末以下信息仅供参考,以比赛官网为准。

    2024-02-01 02:55:55
  • Android 文件打开方法

    Android文件打开方法

    2024-02-01 02:55:47