1001. A+B Format
2016-01-26 16:17
218 查看
Github_link
首先先判断result的正负flag,之后把result绝对值化,再将至多拆分成7个数字的result分别赋给 char类型的Array(ps:赋值时对应加上48),循环中的条件判断语句为
Original source code is available on Github
解题思路
题目要求将两个数之和输出为国际形式的数字显示,如100000#==> 100,000 。首先本想着不用数组直接用循环把a+b(-1000000<=a,b<=1000000)的代数和result%10输出再result/=10,其中每输出三个插入一个',',循环结束即可。但是逗比地忘了这样实现的是逆序输出,所以就又蛋疼的尝试把逆序改为顺序输出,结果发现越弄越复杂,于是就又回到了用数组实现的想法......
首先先判断result的正负flag,之后把result绝对值化,再将至多拆分成7个数字的result分别赋给 char类型的Array(ps:赋值时对应加上48),循环中的条件判断语句为 if(count%3==0)arr[i++]=',';
,同时需要在输出前判断flag来检查是否需要输出负号,最后输出Array即可。
Original source code is available on GithubDEBUG
测试数据:
- 1000 1000 #==> 2,000 |AC - 100000 100000 #==> ,200,000 |WA - -1 1 #==>(null) |WA
本地测试三组数据结果分析:
- 第二组数据在第十行处的循环中,当第6次temp!=0后 (temp/=10)==0 但是count++使得count从5变为6,从而导致条件为真条件语句执行 arr[i++]=','; ,故最后输出时出现 ,200,000。 - 代码中缺少对result==0的判断
代码修改
- 将第13行的条件判断修改为if(count%3==0&&temp!=0)... - 在第14行插入if(result==0)printf("0");
测试数据:
- 1000 -1000 #==> 0 |AC - 100000 100000 #==> 200,000 |AC - 1000000 1000000 #==> 2,000,000 |AC - -1000000 -1000000 #==> -2,000,000|AC
尝试了几组典型数据以及代码审计后未发现算法和逻辑错误,尝试提交。
PAT提交
attempt-1相关文章推荐
- 服务器三种体系架构:NUMA、SMP和MMP
- 剖析SSH核心原理(一)
- Instantaneous Transference--POJ3592Tarjan缩点+搜索
- solr简介
- 你要结婚了丶
- 【199】ArcGIS 添加自定义工具到工具箱
- Instantaneous Transference--POJ3592Tarjan缩点+搜索
- ssh防暴力破解
- Sbt构建工具常用操作
- android 组合控件-属性获取
- 模拟 Codeforces620F Xors on Segments
- android 性能分析工具、布局分析工具、monkey自动化测试的简单使用
- 用原子操作实现无锁编程
- 《Linux环境下sockets编程(1):简单UDP编程》
- JavaScript学习总结——转
- 任意类型转换为IntPtr
- EditText中imeOptions属性使用及设置无效解决
- QT JS KindEditor 禁用超链接默认跳转功能
- 关于数据库控制
- 结构体数组中