题目描述
计算两个大整数的和。大整数是指超过了c,c++表示范围的整数,如1234567890000000000000000000
输入格式
输入包括两个大整数,每个大整数不超过100位,用空格或者换行隔开
输出格式
输出两个大整数的和
输入样例 复制
222222222222222222222
333333333333333333333
输出样例 复制
555555555555555555555
分类标签
#include <stdio.h>
#include<string.h>
int
main()
{
char
a[100+5],b[100+5];
gets
(a);
gets
(b);
int
A[105],B[105],C[105];
int
lenA=
strlen
(a),lenB=
strlen
(b),lenC=0;
int
carry=0,min,max;
if
(lenA>=lenB)min=lenB,max=lenA;
else
min=lenA,max=lenB;
for
(
int
i=0;i<lenA;i++)A[i]=a[lenA-1-i]-
'0'
;
for
(
int
i=0;i<lenB;i++)B[i]=b[lenB-1-i]-
'0'
;
for
(
int
i=0;i<min;i++){
int
temp=A[i]+B[i]+carry;
C[lenC++]=temp%10;
carry=temp/10;
C[lenC]+=carry;
}
if
(lenA>lenC){
for
(
int
i=lenC;i<lenA;i++){
C[i]=(A[i]+carry)%10;
carry=(A[i]+carry)/10;
}
}
else
{
for
(
int
i=lenC;i<lenB;i++){
C[i]=(B[i]+carry)%10;
carry=(B[i]+carry)/10;
}
}
lenC=max;
if
(carry!=0)C[lenC++]=carry;
for
(
int
i=0;i<lenC;i++){
printf
(
"%d"
,C[lenC-1-i]);
}
return
0;
}