ACM OJ题解目录
本题网址:https://cn.vjudge.net/problem/HDU-1002

A + B Problem II

I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
 
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.
 
Output
For each test case, you should output two lines. The first line is “Case #:”, # means the number of the test case. The second line is the an equation “A + B = Sum”, Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.
 
Sample Input
2
1 2
112233445566778899 998877665544332211
 
Sample Output
Case 1:
1 + 2 = 3
 
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110

题目大意:
  大整数加法,长度最多为1000。
  
分析:
  首先,大数运算要用字符串来处理;其次,加法运算要考虑进位问题。
  因此,采用字符串存储,利用ascall码来做运算,再加上一个进位计算,即可轻松解决。
  当然,不会让你们失望的,我的小明同学又出错了。因为题说输出两个测试用例之间的空行,所以最后一个用例下面记得不要输出空行啦~
  
代码如下:

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;const int maxn = 1000 + 5;
int t;
char s1[maxn], s2[maxn];void add(char *a, char *b)
{int alen = strlen(a) - 1;int blen = strlen(b) - 1;int clen = max(alen, blen) + 1;int carry = 0;char c[maxn], *res = c;memset(c, 0, maxn * sizeof(char));while(alen >= 0 && blen >= 0){res[clen] = a[alen] + b[blen] - '0' + carry;if(res[clen] <= '9') carry = 0;    //不用进位 else{    //进位 carry = 1;res[clen] -= 10;}alen--, blen--, clen--;}while(alen >= 0){ //如果a有剩余 res[clen] = a[alen] + carry;if(res[clen] <= '9') carry = 0;else{carry = 1;res[clen] -= 10;}alen--, clen--;}while(blen >= 0){    //如果b有剩余 res[clen] = b[blen] + carry;if(res[clen] <= '9') carry = 0;else{carry = 1;res[clen] -= 10;}blen--, clen--;}if(clen >= 0){   //如果还有进位 res[clen] = carry + '0';}if(res[0] == '0') res++;    //去除首位0 cout << a << " + " << b << " = " << res << endl;
}int main()
{cin >> t;for(int i = 1; i <= t; i++){memset(s1, 0, maxn * sizeof(char));memset(s2, 0, maxn * sizeof(char));cin >> s1 >> s2;cout << "Case " << i << ":" << endl;add(s1, s2);if(i < t) cout << endl;}return 0;
}

HDU 1002 A + B Problem II相关推荐

  1. HDU.1002 A + B Problem II

    原题 HDU.1002 A + B Problem II 分类 杂题·大位整数运算 题意 计算从任意两个长度在1000以内的正整数的和. 输入/输出 要求与格式 输入内容 最开始一行开始输入样例数,对 ...

  2. Hdu - 1002 - A + B Problem II

    题目: A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  3. hdu 1002 A+B problem II

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 题目分析:高精度问题,大整数相加. 由此题可见java相较于C/C++的优势,即丰富多彩的类以及 ...

  4. hdu 1002 A + B Problem II(大正整数相加)

    代码: #include<cstdio> #include<cstring> #define Min(a,b) ((a)<(b)?(a):(b)) using names ...

  5. HDU - 1002 A + B Problem II(大数)

    题目链接:点击查看 题目大意:大数加法 题目分析:第一次用Java写ACM,还是有点小激动滴,有几点需要注意的: 公共类名要写Main 不要提交包名 注意输入输出 上代码吧,纪念一下: import ...

  6. HPU 1002 A + B Problem II【大数】

    HPU 1002 A + B Problem II[大数] A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limi ...

  7. HDOJ 1002 A + B Problem II 解题报告

    今天研究 1002,,,搞得半死,虽说是一道简单的题目,真正做起来绝不是很容易的... A + B Problem II Time Limit: 2000/1000 MS (Java/Others)  ...

  8. hdu 1003 A + B Problem II 使用整型数组轻松实现大数求和

    为题如下: Problem Description I have a very simple problem for you. Given two integers A and B, your job ...

  9. hdu A + B Problem II(大数相加,数组实现)

    hdu A + B Problem II(大数相加,数组实现) 题目走起 注意最后一个case 不需要换行 下面代码 #include<stdio.h> #include<strin ...

最新文章

  1. php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...
  2. Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法
  3. plot画图等高线contour 与 contourf 及API
  4. linux 批量重命名文件
  5. 32位linux运行64位jdk,linux64位操作系统装32位jdk解决方法
  6. 安装和配置VNC服务器的法则
  7. phpcmsV9重装 - 踩坑篇
  8. 数据库工作笔记010---Mysql中用SQL增加、删除字段,修改字段名、字段类型、注释,调整字段顺序总结
  9. JAVA有没有比robot更好用的_使用Java/Python提高工作效率01-Java Robot类
  10. 项目合作需求、数据集合作需求
  11. SpringAop源码一:通知方法优先级
  12. 融合应急指挥调度系统
  13. 自动驾驶中ROS操作系统的重要性
  14. 为何电脑上不显示手机连接服务器,为什么我电脑都能连接上vpn手机却连不上
  15. 过年烟花特效+鼠标滑过+樱花特效
  16. 美团外卖推荐智能流量分发的实践与探索
  17. 读《移山之道》——问渠哪得清如许,为有源头活水来
  18. 可以在Facebook Marketplace 上面买亚马逊雨林?
  19. win下搭建小程序服务器,win下搭建小程序服务器
  20. 一、RISC-V SoC内核——取指 代码讲解

热门文章

  1. C++:从口袋中抓三个不同颜色的球,求有多少种取法
  2. html如何设置重置按钮,在HTML网页上,表单中元素的TYPE属性值设置为()时,用语创建重置按钮。...
  3. 云创大数据助力全国技能大赛河北省选拔赛云计算赛项
  4. Word文档批量修改目录标题格式
  5. python里object是什么类型_Python中的object这个叫做基类的类,它的属性和行为都有哪些?...
  6. 单片机sleep函数的头文件_C语言之Sleep函数
  7. openssl-RSA签名和验签
  8. “小朋友大人排队”问题(十分钟带你玩转 牛客网 CM11 链表分隔)
  9. c语言分数怎么化成整数,分数怎么化成整数 分数转化方法
  10. Lingo解决优化问题