传送门: http://ybt.ssoier.cn:8088/problem_show.php?pid=1168
用字符将其读入, 随后倒记在整数数组 (一位一个数字) 中(避免没地方好进位), 加后进位, 最后去掉多余的零, OK
- #include<iostream>
- #include<cstring>
- #define N 210
- using namespace std;
- int as[N],bs[N],lena,lenb;
- string a,b;
- int main(){
- cin>>a>>b;
- lena=a.size();
- lenb=b.size();
- for(int i=0;i<lena;i++)as[i]=a[lena-i-1]-'0';
- for(int i=0;i<lenb;i++)bs[i]=b[lenb-i-1]-'0';
- int length=max(lena,lenb);
- for(int i=0;i<length;i++)as[i]+=bs[i];
- for(int i=0;i<length;i++){
- if(as[i]>9){
- as[i+1]++;
- as[i]-=10;
- if(i==length-1)length++;
- }
- }
- while(length&&as[length]==0)length--;
- for(int i=length;i>=0;i--)cout<<as[i];
- cout<<endl;
- }
来源: http://www.bubuko.com/infodetail-3093913.html