Github : git@github.com:Circlecos/object-oriented.git
PDF Of Markdown : "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).

解题思路

联想到以前做过的一题字符串替换的题目——"将字符串中特定字符替换并输出新字符串",当时TLE是因为直接对原字符串进行操作然后输出。优化是直接输出不修改原字符串了。
所以这题我也采取一样的思路,直接在输出的时候加入逗号。
那么下一个问题是数字要转换成"字符串"(类比),简单啊,各种/10 %10 就好了。
但是有点浪费,因为输出的时候还需要计算现在是第几位
所以我想到/1000是不是直接取三位呢
试验了一下然后就没有然后了(下一个.jpg(雾

源代码

 #include <stdio.h>
 #include <math.h>
 #define N 3
 int main(void)
 {
     int a,b,sum,q,s[5],i,n,wid;
     scanf("%d %d",&a,&b);
     sum=a+b;
     if (sum<0) {printf("-");sum=abs(sum);}
     n=0;wid=pow(10,N);
     while (sum>=wid)
     {
         q=sum%wid;
         s[n]=q;
         sum/=wid;
         n++;
     }
     s[n]=sum;
     for (i=n;i>=0;i--)
     {
         if (i!=n) printf("%0*d",N,s[i]);
         else printf("%d",s[i]);
         if (i!=0) printf(",");
     }
     return 0;
 }

调试

第一个需要调整的是最后剩下的几位数的处理,开始的时候是直接 printf("%d,",sum) ,然后和小于1000的数据点就出事了
然后调成了现在的样子
然后出现了"1000 10"数据点变成“1,10"的问题 然后加上了%03d
然后上线测试 一个WA

这时候的代码是 while (sum>wid)
只有一个WA基本是特殊数据点了
然后看到这句就想到了1000
果然输出并不是"1,000" 而是"1000"
改掉 AC

其他

嘛没用IDE的debug因为这些bug并不是很难找
然后按习惯#define N 3却发现了一个问题
printf("%03d",s[i]);这个3怎么改(晕(◎﹏◎)
查了下 于是有个现在的代码hhhh(其实之前没找到刚刚找到hhhhhhhh
然后傻傻的push完了再commit --amend导致github变成了那样
恩 就这样

"1001. A+B Format (20)" 解题报告的更多相关文章

  1. 1001.A+B Format (20) 解题

    代码入口(https://github.com/NSDie/object-oriented) 这题的解题思路我有两个: 第一个是两个数字相加然后判断位数,因为题目限制了范围1000000的绝对值以内嘛 ...

  2. (2016.2.2)1001.A+B Format (20)解题思路

    https://github.com/UNWILL2LOSE/object-oriented 解题思路 目标: *首先运算要求实现输入2个数后,输出类似于银行的支票上的带分隔符规则的数字. 代码实现思 ...

  3. 1001.A+B Format (20)解题描述

    1. 作业链接 2. 解题的思路过程 首先这是道简单的计算题,要求计算a+b的值. 看初值条件,将a和b的取值限制在一个区间内. 本题难点和重点是如何把输出值形成题目要求的格式. 因为负数可通过在前面 ...

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

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

  5. PAT----1001. A+B Format (20)解题过程

    1001. A+B Format (20) github链接 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B Calculate a + b and output t ...

  6. 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 ...

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

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

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

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

  9. 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 ...

随机推荐

  1. 02_Docker在CentOS 6和CentOS 7下的安装

    CentOS 7 环境下安装docker 安装Docker 检查系统内核是否高于Linux3.10版本 uname -r 使用root权限操作,确保yum包是最新版本 sudo yum update ...

  2. Flume的一些报错问题解决(持续更新中)

    严谨转载--否则追究法律责任 作者----王加鸿                                                   ----------bug 1---------- ...

  3. mypwd的编译和测试

    pwd指令及其功能 命令格式: pwd [选项] 命令功能: 查看"当前工作目录"的完整路径 常用参数: 一般情况下不带任何参数 如果目录是链接时: 格式:pwd -P 显示出实际 ...

  4. python基础学习1-翻译程序(连接到有道翻译网)

    #!/usr/bin/env python # -*- coding:utf-8 -*- 爬虫程序 import urllib.request#导入 网络连接模块 import urllib.pars ...

  5. cifar数据集介绍及到图像转换的实现

    CIFAR是一个用于普通物体识别的数据集.CIFAR数据集分为两种:CIFAR-10和CIFAR-100.The CIFAR-10 and CIFAR-100 are labeled subsets ...

  6. 【ASP.NET Core】运行原理(2):启动WebHost

    本系列将分析ASP.NET Core运行原理 [ASP.NET Core]运行原理[1]:创建WebHost [ASP.NET Core]运行原理[2]:启动WebHost [ASP.NET Core ...

  7. UWP DEP0700: 应用程序注册失败。[0x80073CF9] Install failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CF9)

    现在部署的app项目八成是从以前的一个项目复制过来,修改的.或者本地存在一个相同的app没有卸载. 解决方法: 1. 卸载之前相同的app 2.如果是复制的项目A,但是经过修改后变成了项目B,并且A和 ...

  8. js简单时间比较的方法(转)

    //时间比较(yyyy-MM-dd) function compareDate(startDate, endDate) {   var arrStart = startDate.split(" ...

  9. systemctl start nginx timeout

    昨儿个研究docker ,搭建私有仓库.想着用nginx代理一下仓库地址.方式使用80端口,于是愉快的下载,编辑,安装nginx.创建nginx.service作为系统启动服务. 结果......,多 ...

  10. fortran shapefile学习

    试图编写一个fortran程序,用以判断给定的点是否落在给定shapefile的范围内. 需要利用到FortranGIS库 ,而该库又依赖于Shapefile C Library 安装shapelib ...