#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void stovec(vector<int> &a, string s) {
a.resize(s.size());
reverse(s.begin(), s.end());
for (int i = 0; i < s.size(); i++) {
a[i] = s[i] - '0';
}
}
bool cmp(vector<int> &a, vector<int> b) {
if (a.size() != b.size()) {
return a.size() > b.size();
}
for (int i = a.size() - 1; i >= 0; i--) {
if (a[i] != b[i]) {
return a[i] > b[i];
}
}
return true;
}
void jian (vector<int> &a, vector<int>b) {
for (int i = 0; i < b.size(); i++) {
a[i] -= b[i];
if (a[i] < 0) {
a[i] += 10;
a[i + 1]--;
}
}
while (a.back() == 0 && a.size() > 1) {
a.pop_back();
}
}
void chu(vector<int> a, vector<int> b, vector<int> &c, vector<int> &yu) {
c.resize(a.size());
for (int i = a.size() - 1; i >= 0; i--) {
yu.insert(yu.begin(), a[i]);
if (!cmp(a, b)) {
continue;
}
int sum = 0;
while (cmp(yu, b)) {
jian(yu, b);
sum++;
}
c.insert(c.begin(), sum);
}
while (c.back() == 0 && c.size() > 1) {
c.pop_back();
}
}
int main() {
vector<int> a, b, c, yu;
string a1, b1;
cin >> a1 >> b1;
stovec(a, a1);
stovec(b, b1);
if (a1.size() < b1.size() || a1.size() == b1.size() && a1 < b1) {
cout << 0 << "余" << a1;
} else {
chu(a, b, c, yu);
reverse(c.begin(), c.end());
reverse(yu.begin(), yu.end());
for (int i : c) {
cout << i;
}
// cout << '\n' << "余";
// for (int i : yu) {
// cout << i;
// }
}
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 704.967 ms | 336 KB | Accepted | Score: 100 | 显示更多 |