1260: 【例】【基础】【P1601】高精度加法
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:107
解决:38
题目描述
计算a+b的值,a,b皆为不超过500位的正整数。
输入
两个正整数,每行一个
输出
一个数,代表两个整数的和
样例输入 复制
111111111111111111111111111111111111
222222222222222222222222222222222222
样例输出 复制
333333333333333333333333333333333333
提示
#include<bits/stdc++.h>
using namespace std;
#define maxn 520
int a[maxn],b[maxn],c[maxn];
int main(){
string A,B;
cin>>A>>B;
int lena,lenb,len;
lena=A.length();
lenb=B.length();
len=max(lena,lenb);
for (int i=A.length()-1;i>=0;i--)
a[lena-i]=A[i]-'0';
for (int i=B.length()-1;i>=0;i--)
b[lenb-i]=B[i]-'0';
for (int i=1;i<=len;i++) {
c[i]+=a[i]+b[i];
c[i+1]=c[i]/10; //模拟进位
c[i]=c[i]%10;
}
if (c[len+1]>0) len++; //最后进位可能会导致位数增加
for (int i=len;i>=1;i--)
cout<<c[i];
return 0;
}