GESP 五级 · GESP 202412 C++ 五级 第 15 题

选择题 · 答案 B

← 整套速查表 GESP 五级 全部真题

题目

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

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;
}

下面说法,正确的是( )。

答案:B

解题思维

分析时间复杂度时关注循环层数和每层迭代次数,递归算法则分析递归树。注意最坏/最好/平均情况的区别。

常见错误

分析复杂度时注意外层循环和内层循环的关联。例如内外两层都到n的循环不一定是O(n²),要看内层是否每次都在缩小。

详细解析(节选)

【考点】高精度运算|数组倒序存储|借位减法

1. 🎯 考纲定位

GESP 五级 数学模块 大数运算。五级不考复杂算法,但会考"手推"高精度——命题人专门用这道题卡住那些"只背模板、不理解数字为何倒序存储"的人。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断