#3458. [GESP202412 五级 C++] 第 15 题
[GESP202412 五级 C++] 第 15 题
小杨编写了一个如下的高精度减法函数:
vector<int> highPrecisionSubtract(vector<int> a, vector<int> b) {
vector<int> result;
int borrow = 0;
for (int i = 0; i < a.size(); ++i) {
int digitA = a[i];
int digitB = i < b.size() ? b[i] : 0;
int diff = digitA - digitB - borrow;
if (diff < 0) {
diff += 10;
borrow = 1;
}
else {
borrow = 0;
}
result.push_back(diff);
}
while (result.size() > 1 && result.back() == 0) {
result.pop_back();
}
return result;
}
下面说法,正确的是( )。
{{ select(1) }}
- 如果数组
a表示的整数小于b表示的整数,代码会正确返回二者的差为负数。 - 代码假设输入数字是以倒序存储的,例如 500 存储为
{0, 0, 5}。 - 代码的时间复杂度为
- 当减法结果为 0 时,结果数组仍然会存储很多个元素 0。