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))
View Code

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
View Code
原文地址:https://www.cnblogs.com/Esquecer/p/8440592.html