#1487. 四则运算进阶

四则运算进阶

题目背景

温馨提示:本题已经证明可以使用C++语言通过

题目描述

小明要做几十亿道小数整数混合运算计算题,可是他懒得算,于是想编写一个进阶的计算器。请你帮他完成这个任务。

输入格式

输入 33有理数,分别为 aaopopbb

对于 opop 输入的值,解释如下:

opop的值 运算
11 加(+)
22 减(-)
33 乘(×)
44 除(÷)

输出格式

一个有理数 resres,为运算之后的结果。

请注意,如果计算结果为小数。若小数点后的位数小于 77,则输出原结果;若结果为无限或超过 77 位的有限小数,请将结果保留 77 位小数

op=4op = 4b=0b = 0 (即除数为 00)时,输出Do not div with 0!

程序可能输入非法数据,如果检测是非法数据,输出Error!

输入输出样例 #1

输入 #1

2.5 3 2

输出 #1

5

输入输出样例 #2

输入 #2

2 4 0

输出 #2

Do not div with 0!

说明/提示

对于所有合法的测试数据保证:a,b{xxQ,x<1012}a,b \in \{x | x \in \mathbb Q , x<10^{12}\}op{1,2,3,4}op \in \{1, 2, 3, 4\}

若数据非法,则该数据可能不在以上给定的范围之内,或输入的数据不是数字,请特别处理;

对于 C/C++ 编写者,您可能需要使用小数高精度算法来处理大范围小数运算;请注意潜在的精度问题。

测试点 取值范围 性质 占比
4713154、7∼13、15 ab<109a、b<10^9 aba、b为整数 30%
13161∼3、16 ab<1012a、b<10^{12} 12%
561424285∼6、14、24、28 ab<109a、b<10^9 aba、b为整数 且 res>109res>10^9 18%
1721232517∼21、23、25 ab<1012a、b<10^{12} aba、b为小数 30%
22293022、29∼30 / aba、b为非法数据 10%