高精度
2024-03-10 14:21:50
发布于:上海
0阅读
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;
}
这里空空如也
有帮助,赞一个