题目描述 Description
给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。
输入描述 Input Description
读入两个用空格隔开的正整数
输出描述 Output Description
输出A+B的值
样例输入 Sample Input
3 12
样例输出 Sample Output
15
数据范围及提示 Data Size & Hint
两个正整数的位数不超过500位
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int Addition (int c[], int length1, int d[], int length2, int e[])
{
int i=0, ans=0;
while(i <= length1-1 || i <= length2-1)
{
e[i] = c[i] + d[i] + ans;
ans = e[i] / 10;
e[i] = e[i] % 10;
i++;
}
if(ans != 0)
{
e[i] = ans;
}
else
{
--i;
}
return i;
}
int main()
{
char a[500],b[500];
int c[500],d[500],e[500];
int length1, length2, length3;
int i;
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
memset(e,0,sizeof(e));
cin>>a;
cin>>b;
length1 = strlen(a);
length2 = strlen(b);
for (i = 0; i <= length1-1; i++ )
{
c[length1 - i - 1] = a[i] - 48;
}
for (i = 0; i <= length2-1; i++ )
{
d[length2 - i - 1] = b[i] - 48;
}
length3 = Addition(c, length1, d, length2, e);
for (i = length3; i >= 0; i--)
cout<< e[i];
cout<< endl;
return 0;
}