JakeLin-1194题-[ACM训练]去括号-看题之前先看我

原题链接:去括号 

题目描述
 

当老师不容易,尤其是当小学的老师更难:现在的小朋友做作业喜欢滥用括号。 
虽然不影响计算结果,但不够美观,容易出错,而且可读性差。但又不能一棒子打死,也许他们就是将来的“陈景润”呢! 
为了减轻老师的工作,不至于他们工作到深夜,我们来写个程序把小朋友的作业做一下简单地处理,去掉那些多余的括号。 
为了简化问题,所有式子里只存在小括号,运算符号包括+(加)、-(减)、*(乘)、/(除)、^(幂)。 
注意:去掉多余的小括号不是指运算结果一样就可以。 
比如:(1+2)^1 = 3。虽然把括号去掉1+2^1也等于3,但我们说这个括号不能去。 
但如:1+(2+3) = 1+2+3只要是允许的,因为加法是满足交换律和结合律的。

输入

输入包括多组测试数据。 
每组测试数据为一行算术表达式,只包括数字和运算符号,长度小于16。 
输入以#行结束,该行不做处理。

输出

对应每组数据输入都有一行输出。 
输出去掉多余的括号后的表达式。

样例输入
((((1))))+((((1))))
1
1+1+1+1
((1+2)+3)*4
(1+(2+3))*4
((1*2)*3)*4
(1*(2*3))*4
((1*2)*(3*4))
1*((2*3)*4)
1*(2*(3*4))
((1*2)*4)*3
(1*(2*4))*3
((1*2)*(4*3))
1*((2*4)*3)
1*(2*(4*3))
((1+3)+2)*4
(1+(3+2))*4
((1+3)*(2+4))
((1*3)*2)*4
(1*(3*2))*4
((1*3)*(2*4))
1*((3*2)*4)
1*(3*(2*4))
((1+3)*(4+2))
((1*3)*4)*2
(1*(3*4))*2
((1*3)*(4*2))
1*((3*4)*2)
1*(3*(4*2))
((1*4)*3)*2
(1*(4*3))*2
((1*4)*(3*2))
1*((4*3)*2)
1*(4*(3*2))
((1*4)*2)*3
(1*(4*2))*3
((1*4)*(2*3))
1*((4*2)*3)
1*(4*(2*3))
((2+1)+3)*4
(2+(1+3))*4
((2*1)*3)*4
(2*(1*3))*4
((2*1)*(3*4))
2*((1*3)*4)
2*(1*(3*4))
((2/1)*3)*4
((2/1)*(3*4))
(2/(1/3))*4
2/(1/(3*4))
2/((1/3)/4)
((2^1)*3)*4
((2^1)*(3*4))
((2*1)*4)*3
(2*(1*4))*3
((2*1)*(4*3))
2*((1*4)*3)
2*(1*(4*3))
((2/1)*4)*3
((2/1)*(4*3))
(2/(1/4))*3
2/(1/(4*3))
2/((1/4)/3)
((2^1)*4)*3
((2^1)*(4*3))
((2+3)+1)*4
(2+(3+1))*4
((2*3)*1)*4
(2*(3*1))*4
((2*3)*(1*4))
2*((3*1)*4)
2*(3*(1*4))
((2*3)/1)*4
(2*(3/1))*4
2*((3/1)*4)
((2*3)/(1/4))
2*(3/(1/4))
((2*3)^1)*4
(2*(3^1))*4
2*((3^1)*4)
((2*3)*4
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
说明 很久就想编一个这样的计算器,只可惜一直没什么思路,最近突然灵感来了,所以就写下 这个程序。现在还在测试阶段,所以功能不是很完善。 程序功能:基本的表达式运算,可以自定义函数跟常量,分别保存在 “常数.txt” 和 “函数.txt”,方便自己添加。双击相应的函数名或常数名就可以将函数或常量添加到表达式中。 计算过程只能当表达式只有一行时有效。 实例1:计算sqr(19+tan(98)*tan(91)-sin(122)*(5*5-(19-11)))/2 计算过程sqr(19+tan(98)*tan(91)-sin(122)*(5*5-(19-11)))/2 =sqr(19+-7.11536972238419*tan(91)-sin(122)*(5*5-(19-11)))/2 =sqr(19+-7.11536972238419*-57.2899616307588-sin(122)*(5*5-(19-11)))/2 =sqr(19+-7.11536972238419*-57.2899616307588-.848048096156426*(5*5-(19-11)))/2 =sqr(19+-7.11536972238419*-57.2899616307588-.848048096156426*(5*5-8))/2 =sqr(19+-7.11536972238419*-57.2899616307588-.848048096156426*17)/2 =20.3032618253667/2 =10.1516309126834 实例2:计算 a=34 b=55 c=a+1 圆的面积(c) a*b c=a+b 圆的面积(c) 以下是计算结果: 圆的面积(c)=3848.4510006475 a*b=1870 圆的面积(c)=24884.5554090847 内置函数: !(x) - x 的阶乘 lg(x),log(x) 以10为底的对数 ln(x) 以 e为底x的对数 pow(x,y) x的y方次幂 prime(x) 判定x是否是素数,如果是直接将s2返回,否则将其各因子用连乘返回 sqr(x),sqrt(x) - x 的二次方根 arcsin(x) - x 的反正弦 arccos(x) - x 的反余弦 arcsec(x) - x 的反正割 arccsc(x) - x 的反余割 atn(x),arctg(x) - x 的反正切 arcctg(x) - x 的反余切 sin(x) - x 的正弦 cos(x) - x 的余弦 sec(x) - x 的正割 csc(x) - x 的余割 tg(x),tan(x) - x 的正切 ctg(x) - x 的余切 harcsin(x) - x 的反双曲正弦 harccos(x) - x 的反双曲余弦 harcsec(x) - x 的反双曲正割 harccsc(x) - x 的反双曲余割 harctg(x),harctan(x) - x 的反双曲正切 harcctg(x) - x 的反双曲余切 hsin(x) - x 的双曲正弦 hcos(x) - x 的双曲余弦 hsec(x) - x 的双曲正割 hcsc(x) - x 的双曲余割 htg(x),htan(x) - x 的双曲正切 hctg(x) - x 的双曲余切 有什么意见或建议可以跟我联系Email: ldm.menglv@gmail.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值