您的位置:首页 > 其它

【hpuoj】大数A+B

2016-12-24 08:41 127 查看


1163: 大数A + B [字符串]

时间限制: 1 Sec  内存限制: 128 MB
提交: 42  解决: 12

[提交][状态][讨论版]


题目描述

给定两个整数AA和BB,让你求出A+BA+B的值。


输入

第一行输入一个整数TT,代表有TT组测试数据。
每组数据占两行,第一行输入一个整数AA,第二行输入一个整数BB。
注:1<=T<=30,1<=A,B<=106666661<=T<=30,1<=A,B<=10666666。


输出

对每组数据,输出A+BA+B的最后结果。 


样例输入

1
233333333333333333333333333333333333333
666666666666666666666666666666666666666


样例输出

899999999999999999999999999999999999999


来源

CZY

题目链接

入门的一道大数。
#include<stdio.h>
#include<string.h>
int max(int x,int y){
int t;
t=(x>y)?x:y;
return t;
}
char a[666666 + 10], b[666666 + 10];
int A[666666 + 10], B[666666 + 10], C[666666 + 10];
int main() {
int la, lb;
int lena, lenb;
int i, j, len;
int T; scanf("%d", &T);
while(T--) {
memset(&A,0,sizeof(A));
memset(&B,0,sizeof(B));
memset(&C,0,sizeof(C));
scanf("%s%s", a, b);
la = strlen(a);
lb = strlen(b);
lena = 0;
for(i = la - 1; i >= 0; i--) {
A[lena++] = a[i] - '0';        }
lenb = 0;
for(i = lb - 1; i >= 0; i--) {
B[lenb++] = b[i] - '0';        }

for(i = 0; i < max(lena, lenb) + 1; i++) {
C[i] = A[i] + B[i] + C[i];
if(C[i] >= 10) {
C[i] -= 10;
C[i + 1]++;
}
}
for(i = max(lena, lenb) + 1; i >= 0; i--) {
if(C[i] != 0) {
break;
}
}
for(; i >= 0; i--) {
printf("%d", C[i]);
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: