HDU 1002 A + B Problem II
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相关推荐
- HDU.1002 A + B Problem II
原题 HDU.1002 A + B Problem II 分类 杂题·大位整数运算 题意 计算从任意两个长度在1000以内的正整数的和. 输入/输出 要求与格式 输入内容 最开始一行开始输入样例数,对 ...
- Hdu - 1002 - A + B Problem II
题目: A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- hdu 1002 A+B problem II
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 题目分析:高精度问题,大整数相加. 由此题可见java相较于C/C++的优势,即丰富多彩的类以及 ...
- hdu 1002 A + B Problem II(大正整数相加)
代码: #include<cstdio> #include<cstring> #define Min(a,b) ((a)<(b)?(a):(b)) using names ...
- HDU - 1002 A + B Problem II(大数)
题目链接:点击查看 题目大意:大数加法 题目分析:第一次用Java写ACM,还是有点小激动滴,有几点需要注意的: 公共类名要写Main 不要提交包名 注意输入输出 上代码吧,纪念一下: import ...
- 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 ...
- HDOJ 1002 A + B Problem II 解题报告
今天研究 1002,,,搞得半死,虽说是一道简单的题目,真正做起来绝不是很容易的... A + B Problem II Time Limit: 2000/1000 MS (Java/Others) ...
- hdu 1003 A + B Problem II 使用整型数组轻松实现大数求和
为题如下: Problem Description I have a very simple problem for you. Given two integers A and B, your job ...
- hdu A + B Problem II(大数相加,数组实现)
hdu A + B Problem II(大数相加,数组实现) 题目走起 注意最后一个case 不需要换行 下面代码 #include<stdio.h> #include<strin ...
最新文章
- php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...
- Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法
- plot画图等高线contour 与 contourf 及API
- linux 批量重命名文件
- 32位linux运行64位jdk,linux64位操作系统装32位jdk解决方法
- 安装和配置VNC服务器的法则
- phpcmsV9重装 - 踩坑篇
- 数据库工作笔记010---Mysql中用SQL增加、删除字段,修改字段名、字段类型、注释,调整字段顺序总结
- JAVA有没有比robot更好用的_使用Java/Python提高工作效率01-Java Robot类
- 项目合作需求、数据集合作需求
- SpringAop源码一:通知方法优先级
- 融合应急指挥调度系统
- 自动驾驶中ROS操作系统的重要性
- 为何电脑上不显示手机连接服务器,为什么我电脑都能连接上vpn手机却连不上
- 过年烟花特效+鼠标滑过+樱花特效
- 美团外卖推荐智能流量分发的实践与探索
- 读《移山之道》——问渠哪得清如许,为有源头活水来
- 可以在Facebook Marketplace 上面买亚马逊雨林?
- win下搭建小程序服务器,win下搭建小程序服务器
- 一、RISC-V SoC内核——取指 代码讲解
热门文章
- C++:从口袋中抓三个不同颜色的球,求有多少种取法
- html如何设置重置按钮,在HTML网页上,表单中元素的TYPE属性值设置为()时,用语创建重置按钮。...
- 云创大数据助力全国技能大赛河北省选拔赛云计算赛项
- Word文档批量修改目录标题格式
- python里object是什么类型_Python中的object这个叫做基类的类,它的属性和行为都有哪些?...
- 单片机sleep函数的头文件_C语言之Sleep函数
- openssl-RSA签名和验签
- “小朋友大人排队”问题(十分钟带你玩转 牛客网 CM11 链表分隔)
- c语言分数怎么化成整数,分数怎么化成整数 分数转化方法
- Lingo解决优化问题