单选题

小杨编写了一个如下的高精度减法函数:

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

如果数组a表示的整数小于b表示的整数,代码会正确返回二者的差为负数。

B

代码假设输入数字是以倒序存储的,例如 存储为 {0, 0, 5} 。

C

代码的时间复杂度为 O(a.size() + b.size())

D

当减法结果为0时,结果数组仍然会存储很多个元素0。

赣ICP备20007335号-2