#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
string x,y;
int a[600];
int b[600];
struct G{
int a[600],len;
string s;
bool b;//0 + 1 -
}a1,a2,a3;
G to_num(G k){
k.len=k.s.length();
for(int i=1;i<=k.len;i++){
k.a[i]=k.s[k.len-i]-'0';
}
return k;
}
bool operator <(G a,G b){
if(a.len==b.len)return a.a[a.len]<b.a[a.len];
else return a.len<b.len;
}
void swap(G &k1,G &k2){
G k;
k=k1;
k1=k2;
k2=k;
}
void out(G k){
if(k.b)cout<<'-';
for(int i=k.len;i>=1;i--){
cout<<k.a[i];
}
cout<<endl;
}
G pl(G k1,G k2){
G k3;
k3.len=max(k1.len,k2.len);
for(int i=1;i<=k3.len;i++){
k3.a[i]+=k1.a[i]+k2.a[i];
if(k3.a[i]/10){
k3.a[i]%=10;
k3.a[i+1]=1;
}
}
if(k3.a[k3.len+1])k3.len++;
return k3;
}
G sub(G k1,G k2){
G k3;
if(k1<k2){
swap(k1,k2);
k3.b=1;
}
k3.len=max(k1.len,k2.len);
for(int i=1;i<=k3.len;i++){
k3.a[i]+=k1.a[i]-k2.a[i];
if(k3.a[i]<0){
k3.a[i]+=10;
k3.a[i+1]=-1;
}
}
if(!k3.a[k3.len])k3.len--;
return k3;
}
G mul(G k1,G k2){
}
G div(G k1,G k2){
}
int main()
{
cin>>a1.s>>a2.s;
a1=to_num(a1);
a2=to_num(a2);
//a3=pl(a1,a2);
a3=sub(a1,a2);
out(a3);
return 0;
}
高精度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.