据说这是华为2005年中心平台开发部的Java比武大赛中的必做题,当时难倒了不少人。你能够给出最佳答案吗?把你的代码帖出来,看看谁的算法最简单最高效。 要求://///////////////////input.txt样例////////////////////////////////
! k0 i) |! c9 i( l7 ?5 ?& Z/ \" C1+3/7*2=
6 n+ z+ p7 W; U4+2/*asjdff*/5-8=! K2 E1 ?, I8 I( z( i* D, F
5%2+5-2/*4=6/*i**ifdg***/*84o*/*1-2=
" q% H8 U8 Q6 W' l) ^……………………………………… //更多表达式省略2 Z: D4 d9 f* s% l6 x
/////////////////////////////////////////////////////////////////; a' X6 u0 K# f8 w
/////////////////////output.txt样例////////////////////////////////$ i# d3 Q/ ^+ W) ~$ I! B
1+3/7*2=43/ l' \" g: z0 Y. X+ J0 T
4+2/*asjdff*/*5-8=6- s+ j5 m/ f3 z5 E' g9 o
5%2+5-2/*4=6/*i**ifdg***/*84o*/*1-2=??, D: [+ }" R3 F, Y. A
……………………………………… //更多表达式省略
" j3 U' _/ c) W///////////////////////////////////////////////////////////// 1. 要求用JAVA实现。 2. 若在命令行参数中指明了 input.txt 和 output.txt,请计算出input.txt中每一行表达式的值,并写入到output.txt文件中 3. 若在命令行参数中只指明了 input.txt,则新建一个output.txt,计算出input.txt中每一行表达式的值,并写入到output.txt文件中 4. 若在命令行参数中没有指明 input.txt 和 output.txt,则输入一个类似4+2/*asjdff*/*5-8这样的表达式,计算1000次这个表达式的值,在屏幕中输出结计算结果和所用时间。 5. 要求最多在180分钟内完成。 |