高精度是一种当数据超出int(或long long)范围时使用的一种运算方法
这里话不多说,直接开搞!
#include<bits/stdc++.h>
using namespace std;
vector<int>mine(vector<int>x1,vector<int>x2){
vector<int>x3;
int x=0;
for(int i=0;i<x1.size();i++){
x+=x1[i];
if(i<x2.size()){
x-=x2[i];
}
x3.push_back((x+10)%10);
if(x>=0){
x=0;
}
else{
x=-1;
}
}
int j = x3.size()-1;
while(j>0 and x3[j]==0){
x3.pop_back();
j--;
}
return x3;
}
bool cmp(string s1,string s2){
if(s1.size()!=s2.size()){
return s1.size()>s2.size();
}
else{
for(int i=0;i<s1.size();i++){
if(s1[i]!=s2[i])
return s1[i]>s2[i];
}
}
return true;
}
int main(){
vector<int>x1,x2;
string s1,s2;
cin>>s1>>s2;
for(int i=s1.size()-1;i>=0;i--){
x1.push_back(s1[i]-'0');
}
for(int i=s2.size()-1;i>=0;i--){
x2.push_back(s2[i]-'0');
}
vector<int>all;
if(cmp(s1,s2)){
all=mine(x1,x2);
}
else{
cout<<'-';
all=mine(x2,x1);
}
for(int i=all.size()-1;i>=0;i--){
cout<<all[i];
}
system("pause");
}
好吧,直接完成!