题目描述
高精度加法,相当于a+b problem,不用考虑负数.
输入格式
分两行输入。a,b<=10^500
输出格式
输出只有一行,代表a+b的值
输入输出样例
输入
1
1
输出
2
输入
1001
9099
输出
10100
#include<bits/stdc++.h>
using namespace std;
#define ll long long
void Add(char a[],char b[])
{
int x[105],y[105],sum[105];
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
memset(sum,0,sizeof(sum));
for(int i=0;i<strlen(a);i++)
x[strlen(a)-1-i] = a[i] - '0';
for(int i=0;i<strlen(b);i++)
y[strlen(b)-1-i] = b[i] - '0';
int c = max(strlen(a),strlen(b));
for(int i=0;i<c;i++)
{
sum[i] += x[i]+y[i];
if(sum[i]>=10)
{
sum[i+1]+=sum[i]/10;
sum[i]%=10;
}
}
if(sum[c]==0)
{
for(int i=c-1;i>=0;i--)
printf("%d",sum[i]);
}
else
{
for(int i=c;i>=0;i--)
printf("%d",sum[i]);
}
}
int main()
{
char a[105],b[105];
scanf("%s%s",a,b);
Add(a,b);
system("pause");
return 0;
}