减法的高精度
源码如下:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
using namespace std;
char a[1001],b[1001],c[1001];
int d[1001],e[1001],f[2002];
int main(){
int i,j,k,m,n,al,bl,cl;
gets(a);
al=strlen(a);
gets(b);
bl=strlen(b);
if(al<bl || (al==bl && strcmp(a,b)<0)){
strcpy(c,a);strcpy(a,b);strcpy(b,c);
printf("-");
}
al=strlen(a);
bl=strlen(b);
for(i=0;i<al;i++)
d[i+1]=a[al-i-1]-'0';
for(i=0;i<bl;i++)
e[i+1]=b[bl-i-1]-'0';
for(i=1;i<=al;i++)
f[i]=d[i]-e[i];
for(i=1;i<=al;i++){
if(f[i]<0){
f[i+1]--;
f[i]+=10;
}
}
while(f[al]==0 && al!=1)al--;
for(i=al;i>=1;i--)printf("%d",f[i]);
puts("");
return 0;}