A + B Problem II

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 308484    Accepted Submission(s): 59635

Problem Description
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
 
-----------------------------------------------------------------------------------------------------------------------------------------------
高精度加法计算,数值位数太大,用字符处理,按位计算,为了方便末尾对齐,采取先取反再相加在取反;
 
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;
void un(char *a,int k) //取反
{
for(int i=0;i<k/2;i++)
swap(a[i],a[k-1-i]);
}
int main()
{
char a[1005],b[1005],c[1005],A[1005],B[1005];
int k1,k2,k;
int o;
while(~scanf(" %d",&o))
{
int t=0;
int q=o;
while(o--)
{
memset(c,'0',sizeof(c));
scanf(" %s %s",A,B);
strcpy(a,A);
strcpy(b,B);
k1=strlen(a);
k2=strlen(b);
un(a,k1);
un(b,k2);
if(k1>k2)//补零以对齐;
{
k=k1;
for(int i=k2;i<k;i++)
b[i]='0';
}
else
{
k=k2;
for(int i=k1;i<k;i++)
a[i]='0'; }
for(int i=0;i<k;i++)//相加和进位
{
c[i]=c[i]+(a[i]-'0')+(b[i]-'0');
if(c[i]>'9')
{
c[i]-=10;
c[i+1]+=1;
}
}
printf("Case %d:\n%s + %s = ",++t,A,B);
if(c[k]>'0') //最高位进位单独考虑
printf("%c",c[k]);
for(int i=k-1;i>=0;i--)
{
printf("%c",c[i]);
}
printf("\n");
if(t!=q)
printf("\n");
} }
return 0;
}

hdu1002 A + B Problem II(高精度加法) 2016-05-19 12:00 106人阅读 评论(0) 收藏的更多相关文章

  1. A simple problem 分类: 哈希 HDU 2015-08-06 08:06 1人阅读 评论(0) 收藏

    A simple problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...

  2. short-path problem (Floyd) 分类: ACM TYPE 2014-09-01 23:58 100人阅读 评论(0) 收藏

    #include <cstdio> #include <iostream> #include <cstring> using namespace std; cons ...

  3. short-path problem (Dijkstra) 分类: ACM TYPE 2014-09-01 23:51 111人阅读 评论(0) 收藏

    #include <cstdio> #include <iostream> #include <cstring> using namespace std; cons ...

  4. leetcode N-Queens/N-Queens II, backtracking, hdu 2553 count N-Queens, dfs 分类: leetcode hdoj 2015-07-09 02:07 102人阅读 评论(0) 收藏

    for the backtracking part, thanks to the video of stanford cs106b lecture 10 by Julie Zelenski for t ...

  5. 多校赛3- Solve this interesting problem 分类: 比赛 2015-07-29 21:01 8人阅读 评论(0) 收藏

    H - Solve this interesting problem Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I ...

  6. Train Problem I 分类: HDU 2015-06-26 11:27 10人阅读 评论(0) 收藏

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  7. The 3n + 1 problem 分类: POJ 2015-06-12 17:50 11人阅读 评论(0) 收藏

    The 3n + 1 problem Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 53927   Accepted: 17 ...

  8. HDu 1001 Sum Problem 分类: ACM 2015-06-19 23:38 12人阅读 评论(0) 收藏

    Sum Problem Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  9. HDU 2101 A + B Problem Too 分类: ACM 2015-06-16 23:57 18人阅读 评论(0) 收藏

    A + B Problem Too Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

随机推荐

  1. java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z

    解决:问谷老师得知是microsoft提供的数据库驱动存在bug.需要换一种驱动连接,使用jtds(下载地址:http://sourceforge.net/projects/jtds/files/)下 ...

  2. Haskell语言学习笔记(63)Dicidable

    Dicidable class Divisible f => Decidable f where lose :: (a -> Void) -> f a choose :: (a -& ...

  3. HTML CSS + DIV实现整体布局 part1

    HTML CSS + DIV实现整体布局 1.技术目标: 开发符合W3C标准的Web页面 理解盒子模型 实现DIV+CSS整体布局 2.什么是W3C标准? W3C:World Wide Web Con ...

  4. Linux 帮助 man命令

    man 命令 使用权限 所有用户< /pre> 语法格式 man [[ [-c ] [-t ] [Section] ] | [-k | -f ] ] [-F] [-m] [ -MPath ...

  5. DBA 招聘

    数据库管理员(资深) 眼控科技 10-19万 72小时反馈 上海 6小时前 大专及以上 2年以上经验 普通话 25-35岁 绩效奖金 带薪年假 午餐补助 定期体检 年底双薪 五险一金 职位描述: 工作 ...

  6. Linux运维就业技术指导(八):期中架构考核

    一,期中架构考核概述 1.1 架构图 1.2 架构图公司背景概述 公司是一个新兴的人脸识别高新创业公司,公司名称xxxx 老总是博士生导师,还有一个副总是研究生导师 副总同时是研发总监,负责所有的研发 ...

  7. JAVA HttpClient进行POST请求(HTTPS)

    目前,要为另一个项目提供接口,接口是用HTTP URL实现的,最初的想法是另一个项目用jQuery post进行请求. 但是,很可能另一个项目是部署在别的机器上,那么就存在跨域问题,而jquery的p ...

  8. MVVM 的理解

    MVVM 是 Model - View - ViewModel 的缩写 可以看到他和之前的MVC很像,的确有人称之为一个加强优化版的MVC. 是一种模块化开发代码分层的思想或者框架! MVVM 的优点 ...

  9. oracle 使用正则表达式获取字符串中包含的数字

    select REGEXP_REPLACE('字符串中包含的数字123,提取后就是123', '[^0-9]', '') from dual;

  10. 查看端口号根据pid号找到相关占用端口应用

    查看端口号根据pid号找到相关占用端口应用   8080 端口被占用不知道被哪个应用软件占用,下面我来教你查出那个该死的应用 方法/步骤   1 首先用netstat 找到端口对应的pid号,找到之后 ...