高精度加法

18级李灏冬  •  4年前


#include<bits/stdc++.h>

using namespace std;

string a,b;
int a1[100],a2[100];
int len1,len2;

int main(){
    cin>>a>>b;
    len1=a.size();
    len2=b.size();
    for(int i=0;i<len1;i++){
        a1[i]=a[len1-i-1]-'0';
    }
    for(int i=0;i<len2;i++){
        a2[i]=b[len2-i-1]-'0';
    }
    len1=max(len1,len2);
    for(int i=0;i<len1;i++){
        a1[i]+=a2[i];
    }
    for(int i=0;i<len1;i++){
        a1[i+1]+=a1[i]/10;
        a1[i]%=10;
    }
    while(a1[len1]){
        a1[len1+1]+=a1[len1]/10;
        a1[len1]%=10;
        len1++;
    }
    for(int i=len1-1;i>=0;i--){
        cout<<a1[i];
    }
    cout<<endl;
    return 0;
}


评论: