高精度
2024-03-10 14:21:50
发布于:上海
1阅读
0回复
0点赞
#include<iostream>
#include<sstream>
#include<algorithm>
using namespace std;
typedef long long l;
l a,b;
string high_add(string s1,string s2){
    reverse(s1.begin(),s1.end());
    reverse(s2.begin(),s2.end());
    string s3="";
    bool add01=0;
    if(s1.size()>s2.size())swap(s1,s2);
    for(int i=0;i<s1.size();i++){
        char c=s1[i]+s2[i]-48+add01;
        add01=0;
        if(c>57)add01=1,c-=10;
        s3.append(1,c);
    }for(int j=s1.size();j<s2.size();j++){
        char c=s2[j]+add01;
        add01=0;
        if(c>57)add01=1,c-=10;
        s3.append(1,c);
    }if(add01)s3.append(1,'1');
    reverse(s3.begin(),s3.end());
    return s3;
}string str(l d){
    stringstream ss;
    ss<<d;
    string s;
    ss>>s;
    return s;
}string add(l a,l b){
    string sa=str(a),sb=str(b);
    return high_add(sa,sb);
}void output(string s){
    cout<<s;
    return;
}void inData(l& a){
    cin>>a;
    return;
}void input(){
    inData(a);
    inData(b);
    return;
}void doit(){
    input();
    string s=add(a,b);
    output(s);
    return;
}int main(){
    doit();
    return 0;
}这里空空如也







有帮助,赞一个