P1601 A+B Problem(高精)
题目描述
高精度加法,相当于a+b problem,不用考虑负数.
输入格式:
分两行输入。a,b<=10500
输出格式:
输出只有一行,代表a+b的值
输入样例:
1
1
输出样例:
2
C++代码
#include<iostream>
using namespace std;
const int MAX=501;
void init(string str,int *a,int len)
{
for(int i=0;i<len;i++)
{
a[i]=str[len-1-i]-48;
}
}
int sub(int *a,int *b,int *c,int len)
{
for(int i=0;i<len;i++)
{
c[i]+=a[i]+b[i];
if(c[i]>=10)
{
c[i+1]++;
c[i]-=10;
}
}
if(c[len]) return ++len;
else return len;
}
void output(int *c,int len)
{
for(int i=len-1;i>=0;i--)
cout<<c[i];
}
int main() {
string str1,str2;
int a[MAX]={0},b[MAX]={0},c[MAX]={0};
cin>>str1>>str2;
init(str1,a,str1.size());
init(str2,b,str2.size());
int len=0;
if(str1.size()>str2.size()) len=sub(a,b,c,str1.size());
else len=sub(a,b,c,str2.size());
output(c,len);
return 0;
}