错误1:没有去除结果的前导0
前导0,即除个位外最高位的0,当一个向量的整数乘以一个0,将得到连续的一系列0,此时只需保留个位的0。
vector<int> mul(const vector<int>& a, const int b) {
int t = 0;
vector<int> c;
for (int i = 0; i < a.size(); i++) {
t += a[i] * b;
c.push_back(t % 10);
t /= 10;
}
while (t) {
c.push_back(t % 10);
t /= 10;
}
// while (c.size() - 1 && ! c.back()) c.pop_back(); // <--mistake
return c;
}