小杨编写了一个如下的高精度减法函数: 下面说法,正确的是( )。
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;
}
- A. 如果数组 表示的整数小于 表示的整数,代码会正确返回二者的差为负数。
- B. 代码假设输入数字是以倒序存储的,例如 存储为 {0, 0, 5} 。
- C. 代码的时间复杂度为
- D. 当减法结果为 时,结果数组仍然会存储很多个元素 。
正确答案:B