WA了。。。后面调。
#include<cstdio>
#include<iostream>
#include<cstring>
#define maxn 1000
using namespace std;
typedef long long ll;
string s1,s2,s3;
ll A1[maxn],A2[maxn],B[maxn],len1,len2,len3;
void swap1(){
s3=s1;
s1=s2;
s2=s3;
len3=len1;
len1=len2;
len2=len3;
}
int main(){
while(cin>>s1>>s2){
memset(A1,0,sizeof(A1));
memset(A2,0,sizeof(A2));
memset(B,0,sizeof(B));
len1=s1.length();
len2=s2.length();
//s1表示更大的那个数,s2表示更小的数
if(len1<len2){
swap1();
}
else if(len1==len2){
for(int i=0;i<len1;i++){
if(s1[i]<s2[i]){
swap1();
break;
}
}
}
//cout<<s1<<" "<<len1<<endl;
//cout<<s2<<" "<<len2<<endl;
//把字符转换为数字
for(int i=len1-1,j=0;i>=0;i--,j++){
A1[j]=s1[i]-'0';
}
for(int i=len2-1,j=0;i>=0;i--,j++){
A2[j]=s2[i]-'0';
}
//做减法运算
ll q=0;
for(int i=0;i<200;i++){
A1[i]=A1[i]-A2[i];
if(A1[i]<0){
A1[i]+=10;
A1[i+1]--;
}
}
//printf
bool flag=0; //去除前导0
for(int i=199;i>=0;i--){
if(A1[i]) flag=1;
if(flag) cout<<A1[i];
}
if(flag==0) cout<<"0";
cout<<endl;
}
return 0;
}