ZJU2017 Simple Arithmetics - 高精度计算+格式处理

ZJU2017 PKU1396 Simple Arithmetics - Central Europe 2000

题目描述:

输入两个数字和一个操作符,数字长度不超过500,操作符可以是+,-,*任意一种。要求按照“竖式计算”的格式输出结果。(格式要求不再描述)

分析:

能坚持把这个题目读完的人高精度计算应该都不成问题。这个题麻烦的就是要按照竖式格式输出,再加上题面中有些细节方面没描述完整,今天我就差点死在这上面……

希望WA到喷血又找不到自己错在哪里的朋友能搜到我这篇解题报告,应该对你有些帮助~:)所以我故意在最顶上写上了ZJU和PKU两个题库的题号~

悲壮的调试过程:WA了好几次后,下来做了许多随机数据来测试,又做了一个辅助程序来帮助测试。通过打印输出结果到文件,然后肉眼观察,找到好几处致命的错误;我的辅助程序验证了我的计算结果是正确的,WA的原因一定是格式问题……接下来重新看了好几遍题,repeat回“做随机数据调试”……◎#¥※……

下面是血泪换来的注意事项,主要讨论格式处理:

1.输入数字一定是正数,若操作符是“-”第二个数字一定小于第一个数字。

2.衡线的长度要处理好。原则是横线必定右对齐;它的最左端是上下两个数字的最左端。看例子:
  200
 *200
 ----
    0
   0
400
-----
40000
   9
*121
----
   9
 18
 9
----
1089
 999
 +11
----
1010

3.在满足对齐的前提下,输出尽量少的前导空格。

4.不要输出前导0,当某个数字是0的时候也不要什么都不输出。

 5.最重要的一点,当乘法只有一个中间结果时,不要输出中间结果。以下是正确输出:
 189
  *9
----
1701

以下两种都不正确:
 189
  *9
----
1701
----
1701
 189
  *9
----
----
1701

6.不要在乘法的中间结果后面输出空格。

7.最后一点,在每组输出数据后面加一个空行。

这些注意事项是在你能确保你的高精度计算结果不错的前提下,只是针对格式处理的。如果你调试半天找不出自己错误的话给你些建议

首先确保你的高精度计算没有问题,可以写个小程序随机生成一些int范围内的数据,把计算结果按照好处理的格式输出到文件。然后再写一个小程序验证这些结果。如果这一步没问题,再按照要求的格式把随机数据的结果输出到文件,然后肉眼观察……

代码又长又丑,就不贴出来了……

这种题目还是靠自己的基础知识,代码没多少参考价值。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值