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;
}
上一篇 下一篇

猜你喜欢

热点阅读