代码文件及题目描写已放至此

一开始看题目的时候有点没看懂,要求把数分组是什么意思。如果只是单纯的a+b的话是不可能的,所以关于这一点犹豫了很久。本来以为是指把a,b,以及它们的和c各建一个数组,但只输入一次的话,建数组根本没意义。后来才终反应过来,是指每三位用逗号隔开。

于是就先尝试将a和b相加后的值,取除1000后的余数,依次存入一个数组中,然后再按顺序输出。

输入1000000和9,跳出来的是“9,1,0,9”。看起来非常的有问题。

把原先的“%d”改为“%03d”后,输出变成“009,001,000,009”了。从结果来看应该是多循环了一次。

于是就改了改循环,修改后显示的是“001,000,009”。

要把第一组的0去掉,于是重新讨论分类。

终于正常了,现在是“1,000,009”。

但是突然发现自己忘记考虑负数了。

尝试带入-1000000和-9,得出的是“-1,000,-09”。看来除了第一部分,其余都不用保留符号。

再在原代码上改下去的话会越来越复杂,就决定重新开始。

这次把-1000~1000之间的数先单独提出来,这是可以直接输出的。

因为除了第一部分其他都不需要符号,所以引入abs函数。

意识到数字范围在-1000000~1000000之间,也就是说最多不超过三组,既然之前的数组用起来太费劲,那这次就直接按大小分好了。

一共分成了绝对值小于1000,小于1000000,大于1000000三组。

因为最多也只有两个逗号,所以直接用i,j,r来代表三块的数字。

输入-1000000和-9,这回是“-1,000,009”了。

又输入32和-32,得出“0”。

输入-10000和81,得出“-9,919”。

似乎没有问题了,去提交代码。

但是代码提交后,却显示返回非零。非常困扰。

原来是编译器选错了。

改成C后提交就好啦。

这是代码。

提交列表。

因为学长提出了把abs放在前面,所以也就做了尝试。但究竟是否有提高代码效率没有看出来……这该怎么看呢?

当初没有把abs放在前面是因为想当然的觉得如果先设了绝对值,后面每次输出时就都得重新讨论正负。但这次想了想后,觉得既然已经用了直接分三类讨论这种偏投机取巧的方法,那不妨更干脆点,直接在开头就判断正负,如果是负数,就直接先输出一个负号。

原先的代码是很久以前打的了,导致当时随手设的变量名现在看得晕乎乎的,所以这次是重新编了一遍。设置变量名时,三块内容分别用st,nd,rd表示,感觉清楚多了。中途又出现了“%d"中没有加03的错误,还出现了输出时加了&的低级错误,真是很不应该。

编完后又拿去测了测,通过了。

以下是代码。

#include<stdio.h>
#include<math.h> int main()
{
int a,b,c,d;
int st,nd,rd;
scanf("%d %d",&a,&b);
c=a+b;
d=abs(c);
if(c<0) printf("-");
if(d<1000) printf("%d",d);
else if(d<1000000)
{
st=d%1000;
nd=d/1000;
printf("%d,%03d",nd,st);
}
else
{
st=d%1000;
d=d/1000;
nd=d%1000;
rd=d/1000;
printf("%d,%03d,%03d",rd,nd,st);
}
return 0;
}

以下是提交列表。

第二次作业(1001.A+B Format (20))的更多相关文章

  1. 1001.A+B Format (20)代码自查(补足版)

    1001.A+B Format (20)代码自查(补足版) 谢谢畅畅酱的提醒,发现了代码中的不足,把变量名更改成更合理的名字,并且把注释也换成英文啦! 栋哥提供的代码自查的方式也帮助了我发现很多代码中 ...

  2. PAT 甲级 1001 A+B Format (20)(20 分)

    1001 A+B Format (20)(20 分) Calculate a + b and output the sum in standard format -- that is, the dig ...

  3. PAT 甲级1001 A+B Format (20)(C++ -思路)

    1001 A+B Format (20)(20 分) Calculate a + b and output the sum in standard format -- that is, the dig ...

  4. PAT甲 1001. A+B Format (20) 2016-09-09 22:47 25人阅读 评论(0) 收藏

    1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Calculate ...

  5. 关于‘1001.A+B Format (20)’的解题报告

    1001.A+B Format(20) 首先要感谢一下指导我github上传问题的小伙伴们,捣腾了一整天我终于摸到了一点门路,真的谢谢你们. 小豪的github 问题描述: Calculate a + ...

  6. "1001. A+B Format (20)" 解题报告

    Github : git@github.com:Circlecos/object-oriented.git PDF Of Markdown : "1001. A+B Format (20)& ...

  7. 【PAT】1001. A+B Format (20)

    1001. A+B Format (20) Calculate a + b and output the sum in standard format -- that is, the digits m ...

  8. PAT-PAT (Advanced Level) Practise 1001. A+B Format (20) 【二星级】

    题目链接:http://www.patest.cn/contests/pat-a-practise/1001 题面: 1001. A+B Format (20) Calculate a + b and ...

  9. 1001. A+B Format (20) (%0nd)

    1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Calculate ...

  10. PAT (Advanced Level) Practice 1001 A+B Format (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1001 A+B Format (20 分) 凌宸1642 题目描述: Calculate a+b and output the sum i ...

随机推荐

  1. Maven DebugConfiguration配置运行内存

    -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m

  2. 慎使用sql的enum字段类型

    在sql的优化中,会有同学提到一点:使用enum字段类型,代替其他tinyint等类型.以前这也是不少人喜欢优化的,但是现在细想,是非常不合理的. 优点: 1.可以设置区间范围,比如设置性别:1男2女 ...

  3. Spring : Spring Security

    ==========================================================================spring-security-过滤器: 顶级Fil ...

  4. django的response-8

    视图函数在处理请求后,必须返回一个 HttpResponse 对象,或者 HttpResponse对象的子对象. 1. HttpResponse 可以通过 django.http.HttpRespon ...

  5. PHP array_reduce()函数的应用解析

    实例 向用户自定义函数发送数组中的值,并返回一个字符串: <?php function myfunction($v1,$v2) { return $v1 . "-" . $v ...

  6. ISAP学习笔记

    学完了ISAP,感觉心情舒畅,毕竟ISAP比Dinic好一点. 说到底ISAP其实是Dinic(不熟悉Dinic的人去我的博客找猴子课堂----最大流与最小割(看看思想),已经置顶)优化版,熟悉的人知 ...

  7. linux线程篇 (一) 线程的基本概念

    --进程 一个正在执行的程序,资源分配的最小单位 进程中的事情需要按照一定顺序区执行的,但是如何在一个进程中让一些事情同时发生呢?子进程存在缺陷 --引进多线程 --线程:有时又称轻量级进程,程序执行 ...

  8. 如何在golang中打印grpc详细日志

    最近捣鼓fabric,在一个tls证书问题上纠结挺久,连接orderer服务时候,grpc日志总是冷冰冰的显示这个信息 Orderer Client Status Code: (2) CONNECTI ...

  9. 如何在VMware Fusion中导入windows下的虚拟机

    最近换了新款的mbp,因为偷懒,便将之前在windows台式机上的虚拟机搬了过来. 特此记录下搬运过程,方便以后查看. 一 操作过程 安装激活VMware 常规操作,无需赘言 拷贝windows下虚拟 ...

  10. Goland的常用快捷键

    文件相关快捷键: CTRL+E,打开最近浏览过的文件. CTRL+SHIFT+E,打开最近更改的文件. CTRL+N,可以快速打开struct结构体. CTRL+SHIFT+N,可以快速打开文件. 代 ...