TOJ1302: 简单计算器 && TOJ 4873: 表达式求值&&TOJ3231: 表达式求值
这些都是应用Python的eval函数的一些题目!
TOJ1302传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1302
TOJ4873传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=4873
TOJ3231传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3231
TOJ1302
描述
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
输入
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
输出
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
样例输入
1 + 2
4 + 2 * 5 - 7 / 11
0
样例输出
3.00
13.36
思路:Python大法好。直接拿eval函数瞎搞就行!
while True: n = input() m = eval(n) if (int(m) == 0 and len(n) == 1): break print('%.2f'%float(m))
TOJ4873
描述
给定一个只包含加法和乘的算术表达式,请你编程计算表达式的值。
输入
输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“ +”和乘法运算符“ *”,且没有括号,所有参与运算的数字均为0到2^31 -1之间的整数。输入数据保证这一行只有 0~ 9、+、* 这 12 种字符。
数据范围
对于 30% 的数据,0≤表达式中加法运算符和乘法运算符的总数≤100;
对于 80% 的数据,0≤表达式中加法运算符和乘法运算符的总数≤1000;
对于 100% 的数据,0≤表达式中加法运算符和乘法运算符的总数≤100000。
输出
输出只有一行,包含一个整数,表示这个表达式的值。注意:当答案长度多于4位时,请只输出最后4位,前导0不输出。
样例输入
1+1*3+4
样例输出
8
思路:一样是用py的eval函数求值,具体看代码!注意:当答案长度多于4位时,请只输出最后4位,前导0不输出。对于这句话,可以直接%10000。
给出的是python2的代码,真_一行解决。
print eval(raw_input())%10000
TOJ3231
描述
给一些包含加减号和小括号的表达式,求出该表达式的值。表达式中的数值均为绝对值小于 10 的整数。
输入
第一行为表达式的个数 n,以下 n 行每行有一个表达式。每个表达式的长度不超过 40 个字符。
输出
对每个表达式,输出它的值。
样例输入
3
3-(2+3)
-9+8+(2+3)-(-1+4)
0-0
样例输出
-2
1
0
思路:无
代码:
n = input() n = int(n) while (n > 0): a = input() print(eval(a)) n-=1