ZZ的计算器

Problem Description

ZZ自从上大学以来,脑容量就是以SB计算的,这个吃货竟然连算术运算也不会了,可是当今的计算机可是非常强大的,作为ACMer, 几个简单的算术又算得了什么呢?可是该怎么做呢?ZZ只想算简单的加减乘除,由于大脑钝化,ZZ连小数都没有概念了!

Input

有多组测试数据,每组测试数据为一个字符串,字符串为合法的算术运算,运算符号只包含+、-、*、/,数据为整数.

Output

请输出正确的结果,除数为0的时候,输出impossible。(结果保证在长整形之内)

Sample Input

1+1*2
2/2+1

Sample Output

3
2
 1 #include<stdio.h>
 2 #include<string.h>
 3 #define LL long long
 4 
 5 int main()
 6 {
 7     LL d[10000] , temp , cnt;
 8     LL i , j;
 9     char ch[200];
10     while(gets(ch))
11     {
12         cnt=temp=0;
13         for(j=0 ; j<strlen(ch) ; j++)
14         {
15             if(ch[j]>='0'&&ch[j]<='9') temp = temp*10+ch[j]-'0';
16             else break;
17         }
18         d[cnt++]=temp;
19         for(i=j ; i<strlen(ch) ; i++)
20         {
21             temp=0;
22             for(j=i+1 ; ch[j]>='0'&&ch[j]<='9' ; j++) temp = temp*10+ch[j]-'0';
23             if(ch[i]=='*') d[cnt-1] *= temp;
24             else if(ch[i]=='/') d[cnt-1] /= temp;
25             else if(ch[i]=='+') d[cnt++] = temp;
26             else d[cnt++] = (-1)*temp;
27             i=j-1;
28         }
29         for(i=1 ; i<cnt ; i++) d[0]+=d[i];
30         printf("%I64d\n",d[0]);
31     }
32     return 0;
33 }
数组模拟
 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stack>
 4 using namespace std;
 5 
 6 stack<long long> stk;
 7 stack<char> op;
 8 
 9 int main()
10 {
11     char str[100];
12     bool bl ;
13     int len, i, j, k;
14     long long a, b;
15     while (scanf("%s",str)!=EOF)
16     {
17         bl = true;
18         while (!stk.empty()) stk.pop();
19         while (!op.empty()) op.pop();
20         i = 0;
21         if (str[0] == '-') i++;
22         len = strlen(str);
23         for(; i<len; i++)
24         {
25             a = str[i++]-'0';
26             while(i < len && str[i] >='0' && str[i] <='9')
27             {
28                 a *= 10;
29                 a += str[i++] -'0';
30             }
31             if (!op.empty())
32             {
33                 if (op.top() == '*')
34                 {
35                     b = stk.top();
36                     stk.pop();
37                     a *=b;
38                     op.pop();
39                 }
40                 else if (op.top() == '/')
41                 {
42                     b = stk.top();
43                     stk.pop();
44                     if (a == 0)
45                     {
46                         puts("impossible");
47                         bl = false;
48                         break;
49                     }
50                     a = b / a;
51                     op.pop();
52                 }
53             }
54             stk.push(a);
55             if (i < len) op.push(str[i]);
56         }
57         if (!bl) continue;
58         long long sum=0;
59         while (!op.empty())
60         {
61             a = stk.top();
62             stk.pop();
63             if (op.top() == '+')
64             {
65                 sum += a;
66                 op.pop();
67             }
68             else
69             {
70                 sum -= a;
71                 op.pop();
72             }
73         }
74 
75         if (str[0] == '-') sum -= stk.top();
76         else sum += stk.top();
77         printf("%I64d\n", sum);
78 
79     }
80     return 0;
81 }
两个栈模拟

 

转载于:https://www.cnblogs.com/contestant/p/3209633.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对视频中的特征颜色物体(青色水杯)进行跟踪

方法一&#xff1a;目标物体白色&#xff0c;其余黑色 import cv2 import numpy as npdef extrace_object():capture cv2.VideoCapture("G:/Juptyer_workspace/study/data/yy.mp4")while(True):ret,frame capture.read()if retFalse:breakhsv cv2.cvtColor(frame…

Android实现号码归属地查询

我们通过发送XML访问 WebService就可以实现号码的归属地查询&#xff0c;我们可以使用代理服务器提供的XML的格式进行设置&#xff0c;然后请求提交给服务器&#xff0c;服务器根据请求就会返回给一个XML&#xff0c;XML中就封装了我们想要获取的数据。 发送XML 1.通过URL封装路…

如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter...

一、如何从 Datagrid 中获得单元格的内容 DataGrid 属于一种 ItemsControl, 因此&#xff0c;它有 Items 属性并且用ItemContainer 封装它的 items. 但是&#xff0c;WPF中的DataGrid 不同于Windows Forms中的 DataGridView。 在DataGrid的Items集合中&#xff0c;DataGridRow…

【C++ grammar】常量、指针、Usage of using, typedef, and #define

目录1、常量 &#xff08;Constant&#xff09;2、指针&#xff08;Pointer&#xff09;3、Usage of using, typedef, and #define1、常量 &#xff08;Constant&#xff09; 常量是程序中一块数据&#xff0c;这个数据一旦声明后就不能被修改了。 如果这块数据有一个名字&am…

四、色彩空间

一、色彩空间 1、什么是色彩空间&#xff1f; 色彩空间是定义的颜色范围。 2、常见的色彩空间有哪些&#xff1f; ①RGB ②HSV 在OpenCV中&#xff0c;Hue的值为0~180&#xff0c;之所以不是360是因为&#xff0c;8位存不下&#xff0c;故进行归一化操作&#xff0c;使得H…

FIFA的完整形式是什么?

国际足联&#xff1a;国际足球联合会 (FIFA: Federation Internationale de Football Association) FIFA is an abbreviation of the "Federation Internationale de Football Association" in French. It is also known as the International Federation of Associa…

【C++ grammar】重载、内联、变量作用域、带默认参数的函数

目录1、变量的作用域1. 变量的作用域分类2. Unary Scope Resolution (一元作用域解析运算符)2、重载函数3、带有默认参数值的函数4、重载函数 VS 带有默认参数值的函数5、内联函数&#xff08;Inline Function&#xff09;1. 普通函数的优缺点2. 使用内联函数3. 定义内联函数4.…

五、像素运算

一、相关概念 1、算术运算 Ⅰ加减乘除 Ⅱ调节亮度 Ⅲ调整对比度 2、逻辑运算 Ⅰ与或非 Ⅱ遮罩层控制 二、图像算术运算(加减乘除均值方差) 其中图像的加减乘除需要保证两张图像的大小相同 import cv2 import numpy as npdef add(src1,src2):dst cv2.add(src1,src2)cv2.im…

Chaikin Curve(球面插值)

在两条折线间完成平滑的过渡是 用画布做UI 或者做类似地图编辑器一类的工作的 很常见的任务。 怎么样化方为圆是决定工作效率的很重要的因素。&#xff08;当需要编辑的曲线多起来&#xff0c; 复杂起来的时候&#xff0c;这会是件相当繁重的工作&#xff09; 最容易想到的莫非…

六、ROI和泛洪填充

一、ROI ROI&#xff1a;region of interest&#xff0c;即感兴趣区域。 一般主要通过numpy来获取ROI 将某区域转变为灰色图片再覆盖原图像 import cv2 import numpy as npsrc cv2.imread(r"G:\Juptyer_workspace\study\opencv\opencv3\a1.jpg") cv2.imshow(&quo…

django 静态数据_如何在Django中使用静态数据?

django 静态数据Static Data means those data items that we cannot want to change, we want to use them as it is like audio, video, images, files etc. 静态数据是指我们不想更改的数据项&#xff0c;我们想像音频&#xff0c;视频&#xff0c;图像&#xff0c;文件等那…

Leetcode226. 翻转二叉树(递归、迭代、层序三种解法)

目录题目1、层序法&#xff1a;2、递归法&#xff1a;1、先序遍历&#xff08;中左右&#xff09;2、后序遍历&#xff08;左右中&#xff09;3、递归中序遍历为什么不行&#xff08;左中右&#xff09;3、迭代法&#xff1a;1、先序遍历2、中序遍历3、后序遍历为什么迭代法的中…

一款jQuery立体感动态下拉导航菜单特效

一款jQuery立体感动态下拉导航菜单特效,鼠标经过&#xff0c;在菜单栏上方下拉出一个背景图片&#xff0c;效果十分不错的一款jquery特效。 对IE6都是兼容的&#xff0c;希望大家好好研究研究。 适用浏览器&#xff1a;IE6、IE7、IE8、360、FireFox、Chrome、Safari、Opera、傲…

七、模糊操作

一、模糊操作基本原理 1&#xff0c;基于离散卷积 2&#xff0c;定义好每一个卷积核 3&#xff0c;不同卷积核得到不同的卷积效果 4&#xff0c;模糊是卷积的一种表象 二、1*3卷积核举例 每次右移一格&#xff0c;进行对应相乘再求和。1*3的卷积核左右两边的元素并没有处理而…

LeetCode 100. 相同的树 思考分析

给定两个二叉树&#xff0c;编写一个函数来检验它们是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1: 输入: 1 1 / \ / 2 3 2 3 [1,2,3], [1,2,3]输出: true 示例 2: 输入: 1 1 / 2 2 [1,2], [1,null,2]输…

八、边缘保留滤波(EPF)

一、概念 边缘保留滤波(EPF,edge preserving filtering) 二、高斯双边 cv2.bilateralFilter(image,0,100,15)100为差异&#xff0c;15为周围的区域 import cv2 import numpy as npdef bilateralFilter(image):dst cv2.bilateralFilter(image,0,100,15)cv2.imshow(bilater…

九、图像直方图

一、图像直方图的属性 说白了就是将图像上的各个颜色通道上的像素点的像素值进行统计&#xff0c;例如&#xff1a;像素值为14的像素点个数有几个&#xff0c;进行显示。 图像的像素值取值范围为[0,255]&#xff0c;这个范围也成为直方图的range也就是直方图的横坐标轴 每一个…

BIFR的完整形式是什么?

BIFR&#xff1a;工业和金融重组委员会 (BIFR: Board of Industrial and Financial Reconstruction) BIFR is an abbreviation of the Board of Industrial and Financial Reconstruction. It was an organization of the Government of India and a branch of the Department …

LeetCode 101. 对称二叉树 思考分析

题目 给定一个二叉树&#xff0c;检查它是否是镜像对称的。 例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。 1/ 2 2 / \ / 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1/ 2 2 \ 3 3 进阶&#xff1a; 你可以运用递归和迭代两种方法解决这个…

直方图反向投影

通过直方图反向投影&#xff0c;根据目标衣服颜色的特征来进行定位 cv2.calcHist([roi_hsv],[0,1],None,[32,48],[0,180,0,256])其中[32,48]表示bin的个数&#xff0c;可以修改&#xff0c;当然范围越小越精确 import cv2 import numpy as np from matplotlib import pyplot …