计算两个非负整数A,B的和。不过这一次有些特殊A,B可能会很大。
输入格式
第一行输入一个非负整数A。
第二行输入一个非负整数B。
A,B的长度不大于 500。
输出格式
输出A+B的值。不要有多余的前导零。
样例输入
123
1234
1357
时间限制:1000ms 内存限制:131072K
AC代码
using namespace std;
const int MAX=500;
const double eps=1e-8;
#include<bits/stdc++.h>
int main(){
int a[MAX];
int b[MAX];
int sum[MAX];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(sum,0,sizeof(sum));
string A,B;
int N=64;
cin>>A>>B;
for(int i=0;i<A.length();i++){
a[i]=A[i]-'0';
}
for(int i=0;i<B.length();i++){
b[i]=B[i]-'0';
}
int maxL=max(A.length(),B.length());
int lenA =A.length();
int lenB =B.length();
int flag=0;
for(int i=maxL-1;i>=0;i--){
if(lenA>0) {
sum[i]+=a[--lenA];
}
if(lenB>0) {
sum[i]+=b[--lenB];
}
if(sum[i]>=10){
sum[i]=sum[i]%10;
sum[i-1]+=1;
if(i==0)
flag=1;
}
}
if(flag)
cout<<"1";
for(int j=0;j<maxL;j++){
cout<<sum[j];
}
cout<<endl;
return 0;
}