YZOJ P3314 计算器
时间限制:1000MS 内存限制:524288KB
出题人:zzx
难度: \(3.6\)
-
题目描述
你打算设计一个简单的计算器,支持计算简单的表达式。
为了简单起见,所有运算涉及的数均为整数(可以是负数),运算包含 +
(加)、 -
(减)、 *
(乘)三种。计算时,按照先乘后加减的顺序计算,同级运算从左到右进行。表达式中可能有括号,应先计算括号内的结果,括号可能有嵌套。
形式化地,表达式的格式如下:(不含 <
、 >
)
< 表达式 > : < 运算数 1>< 运算符 1>< 运算数 2>< 运算符 2> \(\cdots\) < 运算符 \(k-1\)>< 运算数 \(k\)>( \(k\) 为正整数)
其中,运算数可以是整数,也可以是 (< 表达式 >) 或 -
(< 表达式 >) 的形式,即包含在括号内的表达式。运算符为 +
、 -
、 *
之一。保证任意两个 – 不相邻。
请你编写计算器的程序,计算给定的表达式的结果。
-
输入格式
输入包含一个字符串 s
,表示待计算的表达式,保证表达式符合格式,没有空格。
-
输出格式
输出一个整数,表示计算结果。当计算结果不为 0 时,要求最高位非 0。
-
样例输入
1 |
(314+271*99)*(100-985*211)-(-6) |
-
样例输出
1 |
-5638551099 |
-
数据规模与约定
因为是水题,所以没有具体的数据范围
\(1 \leq \left| s \right| \leq 10^4\)