#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
#define MAXN 1000005
struct str{
int len;
int num[MAXN];
};
str a,b,ans;
bool negative;
char c[MAXN],d[MAXN];
void cinn(){
cin>>c;
cin>>d;
if((strlen(c)<strlen(d))||(strlen(c)==strlen(d)&&strcmp(c,d)<0)) {
negative=true;
swap(c,d);
}
a.len=strlen(c);
b.len=strlen(d);
for(int i=0;i<a.len;i++) a.num[a.len-i]=c[i]-'0';
for(int i=0;i<b.len;i++) b.num[b.len-i]=d[i]-'0';
}
void coutt(){
if(negative==true) cout<<"-";
for(int i=ans.len;i>0;i--) cout<<ans.num[i];
cout<<endl;
}
void Plus(){
ans.len=max(a.len,b.len);
for(int i=1;i<=ans.len;i++){
ans.num[i]+=a.num[i]+b.num[i];
ans.num[i+1]+=ans.num[i]/10;
ans.num[i]%=10;
}
if(ans.num[ans.len+1]!=0) ans.len++;
}
void Minus(){
ans.len=max(a.len,b.len);
for(int i=1;i<=ans.len;i++){
if(a.num[i]<b.num[i]){
a.num[i+1]--;
a.num[i]+=10;
}
ans.num[i]+=a.num[i]-b.num[i];
}
while(ans.num[ans.len]==0&&ans.len!=1) ans.len--;
}
int main(){
cinn();
Plus();
coutt();
return 0;
}
C++高精度模板
最新推荐文章于 2024-04-26 15:01:31 发布