pat简单题解答,过了部分测试点

img

img


#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main() {
    string num;
    cin >> num;
    int bcs;
    cin >> bcs;
    vector<int> ynum;
    int temp{ 0 }, ys{ 0 };
    for (auto i : num) {
        temp = ((i - 48) + ys * 10) / bcs;
        ynum.push_back(temp);
        ys = ((i - 48) + ys * 10) % bcs;
    }
    if (ynum.size() > 1) {
        for (auto i = ynum.begin() + 1; i != ynum.end(); ++i) {
            cout << *i;
        }
    }
    else {
        for (auto i = ynum.begin(); i != ynum.end(); ++i) {
            cout << *i;
        }
    }
    cout << " " << ys;
}

输出写错了,应该是

for (size_t i = 0; i < ynum.size(); i++) {
    if (ynum[i] == 0 && i == 0 && yum.size() > 1)
        continue;
    cout << ynum[i];
}
cout << ' ' << ys;

考虑特殊情况首位不能相除时,ynum不能push_back 0
比如 123 除以 2,你得到的应该是061;