代码如下:
#include<iostream>
#include<cstring>
using namespace std;
int a[10091],b[10091];
char sa[10091],sb[10091];
int sum[10091];
int la,lb;
int bj_dx(){
if(la>lb)
return 1;
if(la<lb)
return -1;
for(int i=la; i>=1; i--){
if(a[i]>b[i])
return 1;
if(a[i]<b[i])
return -1;
}
return 0;
}
int main()
{
scanf("%s%s",sa,sb);
la=strlen(sa);
lb=strlen(sb);
for(int i=1; i<=la; i++)
a[i]=sa[la-i]-48;
for(int i=1; i<=lb; i++)
b[i]=sb[lb-i]-48;
if(bj_dx()==0){
cout<<"0";
return 0;
}
if(bj_dx()==-1){
cout<<"-";
swap(a,b);
}
for(int i=1; i<=la; i++){
if(a[i]<b[i]){
a[i]+=10;
a[i+1]--;
}
sum[i]=a[i]-b[i];
}
if(!a[la])
la--;
for(int i=la; i>=1; i--)
cout<<sum[i];
return 0;
}
我下载了样例3,发现果然不对:
输入:
88460914424991
4291703115049359
输出:
-4203242200624368
我的输出:
-03242200624368
但是我自己编了几组简单的样例,都过了,这是为什么呢?求助!!!