题目描述
计算a+b的值,a,b皆为不超过240位的正整数。
输入
两个正整数,每行一个
输出
一个数,代表两个整数的和
样例输入
111111111111111111111111111111111111 222222222222222222222222222222222222
样例输出
333333333333333333333333333333333333
代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[300],b[300],c[300],d[300];
int main(){
//1:输入2个字符串代表2个正整数
string x,y;
cin>>x>>y;
//2:将xy逆序转为2个整数数组,个位需要存到a[1]
reverse(x.begin(),x.end());
int lx=x.size();//字符串x的长度
for(int i=0;i<lx;i++){
a[i+1]=x[i]-'0';
}
reverse(y.begin(),y.end());
int ly=y.size();//字符串y的长度
for(int i=0;i<ly;i++){
b[i+1]=y[i]-'0';
}
//3:模拟加法运算
int l=max(lx,ly);
l++;
for(int i=1;i<=l;i++){
int t=a[i]+b[i]+c[i];
if(t>=10){
c[i+1]=1;
d[i]=t%10;
}else d[i]=t;
}
//4:去掉前导零
while(d[l]==0&&l!=1) l--;
//5:逆序输出d数组
for(int i=l;i>=1;i--) cout<<d[i];
return 0;
}