1001.A+B Format (20)

http://github.com/mingtime/object-oriented.git

题目解读:

看到这个题目,我的第一反应就是 A+B
求和型题目。但是仔细阅读后,发现输出要求是标准型输出。所以题目变成使得c输出为标准型。

解题思路:

在我看来,这种类型的题目,大多数是在输出上做文章,所以我的思路一开始便是改变输出格式。
一开始,我的解题思路是:求出输入数字的位数,然后分为大于3
和小于3两种情况。小于3直接原型输出便好。大于3则选择使用逗号隔开,但是随后我立即发现,这样子在输出上有很大的不方便,需要采用二维数组来实现。

这是我的第一次思路所采用的代码。显然考虑的很浅,且实现得很不方便。

修改后的代码,但是仍存在bug

我对除以十来计算位数产生了怀疑,于是我决定采用除当c<0的情况下,出现了bug,得到的答案不是我所需要的。我发现我遗漏了很重要的另外两种情况,c=0和c<0;c<0的情况一开始我是想试试取区间,但是十分麻烦,于是我想到能不能用绝对值。如果c小于0,则输出时多一个“-”就好了。
于是我选择了外置函数法,定义函数。由于题目中c的位数在十位数之内,所以我选择分没有逗号,有一个逗号,两个逗号三种情况。

最终的正确代码

反思:

  我的代码仍然延续了以往冗长,详细的风格,且对题目的考虑太浅,以至于容易出现错误。并且我的代码需要很多改进的地方,对其进行压缩。

在提交完后我去查看了其他同学的代码提交,我发现很多同学的思路更加简洁明了,代码更加地干净漂亮,这正是我所需要学习的。

附带pat的提交记录列表截图:

本篇随笔的markdown源码:

###http://github.com/mingtime/object-oriented.git
##题目解读:
看到这个题目,我的第一反应就是 A+B
求和型题目。但是仔细阅读后,发现输出要求是标准型输出。所以题目变成使得c输出为标准型。

##解题思路:

 在我看来,这种类型的题目,大多数是在输出上做文章,所以我的思路一开始便是改变输出格式。
 一开始,我的解题思路是:求出输入数字的位数,然后分为大于3和小于3两种情况。小于3直接原型输出便 好。大于3则选择使用逗号隔开,但是随后我立即发现,这样子在输出上有很大的不方便,需要采用二维数组来实现。

![这是我的第一次思路所采用的代码。显然考虑的很浅,且实现得很不方便。](//upload-images.jianshu.io/upload_images/1557909-7064a618547013e6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![修改后的代码,但是仍存在bug](//upload-images.jianshu.io/upload_images/1557909-9dfaca6b7f391797.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 我对除以十来计算位数产生了怀疑,于是我决定采用除当c<0的情况下,出现了bug,得到的答案不是我所需要的。我发现我遗漏了很重要的另外两种情况,c=0和c<0;c<0的情况一开始我是想试试取区间,但是十分麻烦,于是我想到能不能用绝对值。如果c小于0,则输出时多一个“-”就好了。
 于是我选择了外置函数法,定义函数。由于题目中c的位数在十位数之内,所以我选择分没有逗号,有一个逗号,两个逗号三种情况。


 ![最终的正确代码](//upload-images.jianshu.io/upload_images/1557909-10f7a9a123a0dbf5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


##反思:
  我的代码仍然延续了以往冗长,详细的风格,且对题目的考虑太浅,以至于容易出现错误。并且我的代码需要很多改进的地方,对其进行压缩。

  在提交完后我去查看了其他同学的代码提交,我发现很多同学的思路更加简洁明了,代码更加地干净漂亮,这正是我所需要学习的。


 ###附带pat的提交记录列表截图:


   ![图片4.png](//upload-images.jianshu.io/upload_images/1557909-38a8a5e10ac884e8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
原文地址:https://www.cnblogs.com/mingtime/p/5183439.html