Github链接:https://github.com/heihuifei/object-oriented

1001. A+B Format (20)

Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).

Input

Each input file contains one test case. Each case contains a pair of integers a and b where -1000000 <= a, b <= 1000000. The numbers are separated by a space.

Output

For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.

Sample Input

-1000000 9

Sample Output

-999,991

首先说下这个题目写的时候出现了让我很头大的事情:又发生了看错题目意思的问题,所以我才好几天才写这篇随笔。

题目大致意思:算A+B和的值,然后用一种标准的形式(这里我不得不说太坑了)输出结果。标准形式:一个数从右边开始每三位一个逗号,除非少于4位数。

大致思路及过程:其实如果知道了题目的意思的话,写起来还算简单的,用和数分别除以1000,1000000的余数得到的不到三位的补0前面满三位这个思路就可以写出来。至于说解此题的过程是经历了一段奇葩之路,开始一直以为是和数最后从左往右每三位一个逗号,然后就会发现结果明明一直是对的,可是就是一直有bug。最后熬了几天之后,实在不相信自己哪里还错了,咨询了我的班导,她和我说出了此题的正确意思。之后我解题的速度就比较正常了。

#include<stdio.h>
int main()
{
int b,c,temp,rem,cmo=1,contral=0;
int a[10],i,n;
scanf("%d %d",&b,&c);
temp=b+c;
if(temp<0)
{
contral=1;
temp=-temp;
}
for(i=0;temp!=0;i++)
{
rem=temp%10;
temp/=10;
a[i]=rem;
n=i;
}
if(contral==1)
printf("-");
for(i=n;i>=0;i--,cmo++)
{
printf("%d",a[i]);
if(cmo%3==0)
printf(",");
}
return 0;
}

这两张是在最开始理解错了题目意思的情况下(也就是输出从左往右逗号),最后发现了输出结果会在最后还输出一个逗号。

#include<stdio.h>
int main()
{
int b,c,temp,rem,cmo=1,contral=0;
int a[10],i,n;
scanf("%d %d",&b,&c);
temp=b+c;
if(temp<0)
{
contral=1;
temp=-temp;
}
for(i=0;temp!=0;i++)
{
rem=temp%10;
temp/=10;
a[i]=rem;
n=i;
}
if(contral==1)
printf("-");
for(i=n;i>=0;i--,cmo++)
{
printf("%d",a[i]);
if(cmo%3==0&&cmo<n-1)
printf(",");
}
return 0;
}



经过修改后提交发现还是有错,然后我自己又继续寻找bug,发现如果和数为0的时候,会出现没有输出的情况。

int main()
{
int b,c,temp,rem,cmo=1,cmonum,contral=0;
int a[20],i,n;
scanf("%d %d",&b,&c);
temp=b+c;
if(temp<0)
{
contral=1;
temp=-temp;
}
if(temp==0)
printf("0");
for(i=0;temp!=0;i++)
{
rem=temp%10;
temp/=10;
a[i]=rem;
n=i;
}
if(contral==1)
printf("-");
cmonum=n/3;
for(i=n;i>=0;i--,cmo++)
{
printf("%d",a[i]);
if(cmo%3==0&&cmonum!=0)
{
printf(",");
cmonum--;
}
}
printf("\n");
return 0;
}

然后我把所有的都改好了之后,可是提交上去还是只有13分(因为我的题目意思理解错了),经过几天的挣扎后,问过班导之后才发现是这个问题。

#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,p,q,t,C;
scanf("%d %d",&a,&b);
c=a+b;
C=abs(c);
if(C<1000&&C>=0)
printf("%d",c);
else if(C>=1000&&C<1000000)
{
p=c%1000;
q=c/1000;
printf("%d,%03d",q,p);
}
else if(C>=1000000&&C<=2000000)
{
p=c%1000;
q=(c/1000)%1000;
t=c/1000000;
printf("%d,%03d,%03d",t,q,p);
}
printf("\n");
return 0;
}

之后知道题目正确的意思之后就我打了一遍,发现第一个测试点没过,经过几轮的排查之后,知道了测试数据没有过,是我的取余数的时候负号算错了,没有加绝对值。测试结果如下:



还有这个是不知道什么时候在哪个代码里发现的bug:



之后经过修改后终于修成正果:

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



总的提交列表(如下)一看,发现过程真是艰难啊,一开始编译器测试显示编译错误,之后的波折上面也已经做出陈述。



总结:虽然这次作业比较简单,但是因为各种问题所以收获还是很大的,也说明了在经过期末考试之后我的编程题做得是很少的。另外还是要对英文题多加练习,多在老师学提供的各种平台上进行练习。

寒假作业第二篇随笔(A+B)的更多相关文章

  1. linux-0.11分析:boot文件 setup.s 第二篇随笔

    boot文件 setup.s 第二篇随笔 参考 [github这个博主的][ https://github.com/sunym1993/flash-linux0.11-talk ] 中断获取光标的位置 ...

  2. 寒假作业第二组P&&Q&&R题解

    P的题意是有M份作业,这些作业有不同的截止日期,超过截止日期完成,不同的作业有不同的罚分,求如何完成罚分最低. 首先,从截止日期最长的那个作业到截止日期,这些天数是固定的,所做的就是把这些作业填进这些 ...

  3. 寒假作业第二组C题题解

    这道题题意很简单,主要是练习map的使用.看输入有三个数据,水果名,地名,和出现次数.再看输出,很容易想到map<string,int> string是水果,int是次数,那个地名怎么用m ...

  4. FJUT寒假作业第二周C题解(位运算)

    题目来源:http://210.34.193.66:8080/vj/Contest.jsp?cid=161#P2 题意比较好理解.如果直接按题目要求一步一解.一定超时.作为一个懒人也不会这么暴力一个肯 ...

  5. FJUT寒假作业第二周G题解快速幂

    题目来源:http://210.34.193.66:8080/vj/Contest.jsp?cid=161#P6     题意:求n个数字的乘积对c取摸.主要就是有快速幂扩展到广义幂的过程. 首先题目 ...

  6. 第一次c++团队合作项目第二篇随笔

    随着时间的推移,项目也逐渐展开.我的地图也通过按钮的拼接完成了一小部分.这部分我是用了QT上的按钮类来实现的.接下来就是给按钮贴上图片,然后最重要也是最困难的是实现参数的传递,如何实现点击一个英雄或小 ...

  7. Hdu1015&&寒假作业第二组I题

    题意是A-Z对应1-26,然后给个目标数字和字符串,看看字符串里的某5个字符的组合能不能使v - w^2 + x^3 - y^4 + z^5 = target等式成立,其实多写几个循环也可以达到目的, ...

  8. 寒假作业第二组E题题解

    注意看题,注意看题,注意看题.重要的事情三遍感觉都不够.不怕大家笑话,这道题RuntimeError 9次,我一直以为是哪里越界了,结果最后发现的时候,真是无语了,题目里说了,所有的integer都不 ...

  9. 20155301-滕树晨 第二次随笔作业--从现有技能获取的经验应用于JAVA中

    第二次随笔--从现有技能获取的经验应用于JAVA中 你有什么技能比大多人(超过90%以上)更好? 这个想了半天,有一个是我乒乓球还是比较擅长的,在学校里可能比百分之90的人要强,在外面肯定是不如了.再 ...

随机推荐

  1. localStorage 和 sessionStorage

    1.概述 以前本地存储使用 cookie.但是 Web 存储需要更加安全和快速.所以就出现了localStorage 和 sessionStorage. 2.sessionStorage,localS ...

  2. HBase基础概念

    定义 非关系型分布式列式数据库,支持大数据量查询(百万,上亿行) 概要 数据存储:HDFS 数据计算:MapReduce/Spark 服务协调:Zookeeper 特征 列式存储(列只有一种类型byt ...

  3. matlab2016b配置libsvm的各中坑及解决办法

    Q1:matlab2016b不能自动关联m文件! A1: (1)首先准备好工具,工具链接:pan.baidu.com/s/1t_KaFZNOFln9m57sMBTrkQ:提取码:x49w. (2)下载 ...

  4. maven第一天——入门与基本概念

    一.什么是maven? 1.概述 核心点:项目构建.依赖管理.[更新]:源码关联 (如何关联源码:在依赖的jar上右击 maven download source即可) Maven是一个项目管理和综合 ...

  5. PyQt5 笔记(01):嵌套布局

    PyQt5 有四种布局:水平(QHBoxLayout).竖直(QVBoxLayout).网格(QGridLayout).表单(QFormLayout)在窗体中单一的布局应该不难,但若是比较复杂的布局, ...

  6. 1 nodejs

      重点 :  

  7. springmvc 使用jq传递json数据时出现415错误

    出现415错误是因为解析json时出现了错误,通过排查几点就能解决. 样例: <script> function requestByJson() { var datatest = {&qu ...

  8. python数据分析处理库-Pandas

    1.读取数据 import pandas food_info = pandas.read_csv("food_info.csv") print(type(food_info)) # ...

  9. tomcat 在liunx中shutdown后进程仍然存在的两种实用解决办法

    方法一: 查找tomcat进程并kill ps -elf | grep ${ctompath} | grep -v grep | awk '{print $4}' | xargs kill -9 此处 ...

  10. cpp-variable-lifetime

    #include <cstdio> #include <iostream> using namespace std; class TmpClass; void FuncScop ...