题目描述
求两个非负整数(1000位以内)的和。
输入
两个非负整数(1000位以内),以空格分隔。
输出
两个非负整数的和。
样例输入
111111111111 222222222222
样例输出
333333333333
#include<iostream>
#include<string>
using namespace std;
void SumOfLargeNumbers(string str1,string str2)
{
int length1=str1.size(),length2=str2.size();
int length=length1>length2?length1:length2;
string str3(length,'0');
if(length1<length)
{
for(int i=0;i<(length-length1);++i)
str1='0'+str1;
}
if(length2<length)
{
for(int i=0;i<(length-length2);++i)
str2='0'+str2;
}
int carry=0;
for(int i=length-1;i>=0;--i)
{
str3[i]=((str1[i]-'0')+(str2[i]-'0')+carry)%10+'0';
carry=((str1[i]-'0')+(str2[i]-'0')+carry)/10;
}
if(carry)
{
char c=carry+'0';
str3=c+str3;
}
cout<<str3<<endl;
}
int main()
{
string str1,str2;
while(cin>>str1>>str2)
SumOfLargeNumbers(str1,str2);
return 0;
}