PAT B1116 多二了一点
2025-04-12 本文已影响0人
梅友泥撑
我看网上有的版本:1122这种数给出的结果是22-11=2.但是照样能AC。我看看哪里可以补充测试样例。
#include<iostream>
#include<string>
using namespace std;
int main() {
string num;
cin >> num;
int len = num.length();
if (len % 2 != 0) {
cout << "Error: " << len << " digit(s)" << endl;
}
else {
string stra = num.substr(0, len / 2);
string strb = num.substr(len / 2);
if (stra.length() > 1) {
string substra = stra.substr(0, stra.length() - 1);
string substrb = strb.substr(0, strb.length() - 1);
if (substra != substrb) {//比较个位之前
cout << "No: " << strb << " - " << stra << " != 2" << endl;
return 0;
}
}
int a = num[len / 2 - 1] - '0';//只比较个位
int b = num[len - 1] - '0';
if (b - a == 2) {
cout << "Yes: " << strb << " - " << stra << " = 2" << endl;
}
else {
cout << "No: " << strb << " - " << stra << " != 2" << endl;
}
}
return 0;
}