杭电HDU1002 A + B Problem II 大数据相加基础题AC代码
来源:互联网 发布:订酒店哪个软件好 知乎 编辑:程序博客网 时间:2024/06/05 05:59
代码思路算是比较简单的,注释也写的比较多,去掉我格式上的空行和注释也就40行左右,比较好理解。不过题目坑点很多,总结一下我遇到的问题:
WA:
- 0+0是否会输出0
- 输出的数字前面有没有多余的0 比如00003+0005
- 输入的两个数是什么顺序 输出就要是什么顺序 比如你输入的两个数是 1 10000009
那么最后输出就要是 1 + 10000009 = 10000010
我几个月以前写的代码会判断两个字符串哪个长 如果第二个长就把两个交换字符串交换位置 输出的时候没注意 都是长的在前面 比如上面的就会 10000009 + 1 = 10000010 WA了无数次才发现 - 注意%s + %s = 之间的几个空格
- Case 1: 注意空格、大写,冒号要是英文半角符号。注意不要出现 Case 0: 这样的问题( 很多看起来是格式的问题最后都会导致WA WA的时候一回头看看输出)
PE:
- 每组输出后面是换行+空行
- 最后一组输出后面只有换行,没有空行
贴一下C++ AC的代码(没有考虑负数),有错误或者可以改进的地方欢迎留言,渣渣的第一帖~
#include<iostream>#include<cstdio>#include<cstring>using namespace std;void add(char a[], char b[]);int T;//测试数据的组数int main(){ int a, b, i; scanf("%d", &T); while (T--) { char num1[1001], num2[1001]; scanf("%s%s", num1,num2); add(num1, num2); } return 0;}void add(char num1[], char num2[]) //大数相加函数{ static int N = 1; int a[1001] , b[1001], len_a, len_b, i, j; //a充当sum数组输出 len_a = strlen(num1); len_b = strlen(num2); memset(a, 0, 1001 * 4); //数组初始化 也可以 = { 0 } memset(b, 0, 1001 * 4); //倒序储存 个位对个位 十位对十位 否则可能会错位 //储存在字符数组里 字符型转换成整型 注意减‘0’或减48 for (i = len_a - 1, j = 0; i >= 0; i--) a[j++] = num1[i] - '0'; for (i = len_b - 1, j = 0; i >= 0; i--) b[j++] = num2[i] - '0'; //相加 储存在数组a里 for (i = 0;i < (len_a>len_b?len_a:len_b); i++) { a[i] += b[i]; if (a[i] >= 10) //满10 { a[i] -= 10; //本位只保留个位数 a[i + 1]++; //下一位进1 } //输出部分 //Case的C要大写 Case和1之间有空格 后面有冒号 换行 //%s + %s = printf("Case %d:\n%s + %s = ", N++, num1, num2); while (a[i] == 0) { i--; }//去掉前面多余的0 if (i < 0)cout << "0"; //结果=0 for (i; i >= 0; i--) cout << a[i]; cout << endl; //每组测试数据间有空行 if (T != 0) cout << endl; //最后一组数据之后只换行 没有空行}
阅读全文
1 0
- 杭电HDU1002 A + B Problem II 大数据相加基础题AC代码
- hdu1002 A + B Problem II(大数相加)
- 杭电ACM—HDU1002 A + B Problem II
- HDU1002 A + B Problem II--大数相加的应用
- hdu1002 A + B Problem II(大数题)
- hdu1002 A + B Problem II
- hdu1002 A + B Problem II
- hdu1002 A + B Problem II
- HDU1002 A + B Problem II
- hdu1002 A + B Problem II
- HDU1002--A + B Problem II
- hdu1002 A + B Problem II
- hdu1002 A + B Problem II
- HDU1002 A + B Problem II
- hdu1002 A+B Problem II
- [HDU1002] A + B Problem II
- HDU1002---A + B Problem II
- A + B Problem II---hdu1002
- java的awt和swing有什么不同
- @xmlAttribute等注解它的用处?
- Maven简介
- 利用lua-intf来调用C++函数
- js设计模式-----观察者模式
- 杭电HDU1002 A + B Problem II 大数据相加基础题AC代码
- 压力测试工具--jmeter
- 【原】递归
- 第三章项目管理过程
- 数据库中查询出来的数据转换成json格式
- 集合
- String path = request.getContextPath(....拼装当前网页的相对路径
- VTK Landmark配准
- 在centos7中安装nodejs(npm )8.1.4