/************高精度加法***********/
#include<bits/stdc++.h>
using namespace std;
string stringAdd(string num1,string num2){
string res="";
int t=0;
int i=num1.length()-1;
int j=num2.length()-1;
while(i>=0||j>=0||t!=0){
int a=i>=0?num1[i--]-'0':0;
int b=j>=0?num2[j--]-'0':0;
int sum=a+b+t;
t=sum/10;
sum%=10;
res+=sum+'0';
}
reverse(res.begin(),res.end());
return res;
}
int main(){
string num1,num2;
cin>>num1>>num2;
cout<<stringAdd(num1,num2);
return 0;
}
/************高精度减法*************/
#include<bits/stdc++.h>
using namespace std;
string stringSub(string num1,string num2){
string res="";
int t=0;
bool f=false;
if((num1.length()<num2.length())||(num1.length()==num2.length()&&num1<num2)){
swap(num1,num2);
f=true;
}
int i=num1.length()-1;
int j=num2.length()-1;
while(i>=0||j>=0||t!=0){
int a=i>=0?num1[i--]-'0':0;
int b=j>=0?num2[j--]-'0':0;
int p=a-b-t;
if(p<0){
p+=10;
t=1;
}else{
t=0;
}
res+=p+'0';
}
while(res.size()>1&&res[res.size()-1]=='0'){
res.resize(res.size()-1);
}
reverse(res.begin(),res.end());
if(f){
res.insert(res.begin(),'-');
}
return res;
}
int main(){
string num1,num2;
cin>>num1>>num2;
cout<<stringSub(num1,num2);
return 0;
}
高精度加减法
最新推荐文章于 2024-09-07 23:15:53 发布