A+B Problem(高精度)
时间限制:1秒 内存限制:125M
题目描述
求A+B的结果,不用考虑负数。A和B位数比较多,不能直接用int类型进行加减操作。
输入描述
输入两行,分别为A和B。(a,b<=10^500)A和B都没有前导零。
输出描述
输出只有一行,代表A+B的值
样例 样例2
输入 输入
1 2 1 2
输出
2 4
AC代码:
#include<bits/stdc++.h>
using namespace std;
int a[1005],b[1005],c[1005];
int main()
{
string s1,s2;
cin>>s1>>s2;
for(int i=0;i<s1.size();i++)
{
a[i]=s1[s1.size()-1-i]-'0';
}
for(int i=0;i<s2.size();i++)
{
b[i]=s2[s2.size()-1-i]-'0';
}
int w=max(s1.size(),s2.size());
for(int i=0;i<w;i++)
{
c[i]+=a[i]+b[i];
if(c[i]>=10)
{
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
}
if(c[w]!=0)
{
w=w+1;
}
int lo=w-1;
while(c[lo]==0&&lo>=1)
{
lo--;
}
for(int i=lo;i>=0;i--)
{
cout<<c[i];
}
return 0;
}