【第四期】E.计算器
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
这是孵化器一轮考核第四期的E题,旨在考查大家对栈的应用能力
该题的难度较高,建议完成其他题目后再尝试
周琦:你怎么敢上这道题的,我当年做了一整天多
lyt:最后一题当然应该上压轴啦~ 无所谓,会有小登出手的。
xwx:爽!我要看到血流成河呀
Description
给出若干行算式, 需要你写出程序以求出这些算式的答案. 参考函数 int atoi(const char *str) double atof(const char *str)
Format
Input
第一行输入整数 N,表示接下来有N行算式
每个算式以数字或者'-'[负号]为开头,以'='[等于号]为倒数第二个字符,以'\n'[换行符]为结尾.
算式仅包含如下几个元素: 1.0-9[数字] 2.'+'[加号] 3.'-'[减号] 4.'x'[乘号] 5.'/'[除号] 6.'.'[小数点] 7.'('[前括号] 8.')'[后括号]
数据范围 前30%的测试点仅包含前三种元素; 中间50%包含前五种元素; 后20%包含所有元素;
Output
每个答案单独占一行,行末以'\n'为结尾. 对于可能存在的小数答案,规定统一输出小数点后 6位.对于小数末位(第六位),我们采用四舍六入五成双的计数保留法.对于小数的判断,只要通过保留法得到的小数部分都为0,那么我们就认为这是一个整数.比如1.0000001和0.9999995,因为它的小数点后6位在四舍六入5成双之后小数点后6位都是0,那么我们就将它们视为整数1.
Samples
1
1+1=
2
1
-1.2x-1=
1.200000
Limitation
1s, 1024KiB for each test case.