很难受,第7个点错了,我下载数据到本地后,测了下发现是cin读的时候没读完,但是我用别人ac代码为啥也没读完但是能过。求助下各位大佬们QAQ
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
void diff(string a, string b);
string c;
bool mark = false;
int main(){
string a, b;
cin>>a>>b;
int al = a.length(), bl = b.length();
if(al == bl){
if(a >= b){
diff(a, b);
}else{
mark = true;
diff(b, a);
}
}else if(al > bl){
diff(a, b);
}else{
mark = true;
diff(b, a);
}
return 0;
}
// a-b
void diff(string a, string b){
int al = a.length(), bl = b.length();
int dist = al - bl;
for(int i = bl-1; i >= 0; i--){
int bnum = b[i]-'0';
int anum = a[i+dist]-'0';
if(b[i] > a[i+dist]){
anum = anum + 10;
c += (char)((anum-bnum)+'0');
a[i+dist-1] = (char)(a[i+dist-1]-'0'-1+'0');
}else{
c += (char)((anum-bnum)+'0');
}
}
for(int i = dist-1; i >= 0; i--){
c += a[i];
}
reverse(c.begin(), c.end());
for(int i = 0; i < c.length(); i++){
if(c[i] != '0' && c[i] != '-'){
c = c.substr(i, c.length()-i);
break;
}
if(i == c.length()-1){
c = '0';
}
}
if(mark){
c.insert(0, "-");
}
cout<<c;
}