1 条题解

发布要求:学生须先通过本题;教师和管理员可直接维护官方内容。内容应说明核心思路、关键步骤、正确性理由和复杂度。 只粘贴代码不会通过审核。

你尚未通过该题,通过后才能发布题解。

  • 0
    @ 2011-9-8 0:55:32 官方题解 源题同步

    01|2025-03-L5-TF-05

    学生训练答案:T

    原卷事实

    题面讨论常规递归函数的终止。

    必要假设

    按考试所指正常返回的递归过程。

    C++11 / 算法语义

    递归需有能停止继续递归的基例或终止路径。

    命题预期

    判断为真。

    推导结论

    训练答案T。

    02|2025-03-L5-SC-07

    学生训练答案:A

    原卷事实

    题目询问递归层数过多的直接资源限制。

    必要假设

    按常规函数调用模型。

    C++11 / 算法语义

    每层调用占用调用栈帧,深度过大会耗尽栈空间。

    命题预期

    选择A。

    推导结论

    训练答案A。

    03|2025-12-L5-TF-09

    学生训练答案:T

    原卷事实

    题面讨论会正常终止的递归函数。

    必要假设

    递归路径需要能到达基例。

    C++11 / 算法语义

    缺少终止路径可能无限递归并耗尽调用栈。

    命题预期

    判断为真。

    推导结论

    训练答案T。

    04|2025-06-L5-SC-09

    学生训练答案:C

    原卷事实

    函数递归求左右半区最大值,再取两者最大值。

    必要假设

    输入vector非空,left/right区间合法。

    C++11 / 算法语义

    代码体现分治与递归,不是按局部选择构造解的贪心算法。

    命题预期

    错误说法C。

    推导结论

    学生训练答案C。

    05|2025-06-L5-TF-09

    学生训练答案:F

    原卷事实

    代码对偶数递归n/2,对奇数递归3*n+1,n==1终止。

    必要假设

    只讨论题目给定调用puzzle(7),且中间int运算可表示。

    C++11 / 算法语义

    7的调用序列最终到达1,因此不会无限递归。

    命题预期

    判断为假。

    推导结论

    学生训练答案F。

    06|2025-09-L5-TF-03

    学生训练答案:F

    原卷事实

    代码使用memo数组缓存已计算结果。

    必要假设

    数组大小容纳n且初始化成-1。

    C++11 / 算法语义

    每个状态只实质计算一次,总时间O(n),非O(2ⁿ)。

    命题预期

    判断为F。

    推导结论

    训练答案F。

    07|2025-09-L5-TF-08

    学生训练答案:F

    原卷事实

    代码每层递归解两个n-1规模子问题并移动一次。

    必要假设

    标准3柱汉诺塔,n>=1。

    C++11 / 算法语义

    递推T(n)=2T(n-1)+O(1),时间为O(2ⁿ),非O(n log n)。

    命题预期

    判断为F。

    推导结论

    训练答案F。

    08|2025-09-L5-TF-09

    学生训练答案:T

    原卷事实

    题目询问递归到迭代的一般可转换性。

    必要假设

    允许使用显式栈保存调用状态。

    C++11 / 算法语义

    递归调用栈可用程序数据结构显式模拟。

    命题预期

    判断为T。

    推导结论

    训练答案T。

    09|2025-12-L5-TF-08

    学生训练答案:F

    原卷事实

    代码每个非基例调用fib(n-1)与fib(n-2)。

    必要假设

    n为非负。

    C++11 / 算法语义

    递归调用树呈指数增长,时间约O(φⁿ),不是O(n)。

    命题预期

    判断为假。

    推导结论

    训练答案F。

    10|2025-12-L5-SC-13

    学生训练答案:A

    原卷事实

    factorial1线性深度递归,factorial2线性循环。

    必要假设

    n为非负且乘法结果可表示。

    C++11 / 算法语义

    二者时间O(n);递归空间O(n),迭代额外空间O(1)。

    命题预期

    仅A正确。

    推导结论

    训练答案A。

    11|2026-03-L5-TF-04

    学生训练答案:T

    原卷事实

    递推式为两个半规模子问题加线性合并。

    必要假设

    n按2的幂或取整不影响渐近界。

    C++11 / 算法语义

    主定理给出O(n log n)。

    命题预期

    判断为真。

    推导结论

    训练答案T。

    12|2026-03-L5-SC-09

    学生训练答案:D

    原卷事实

    题目比较递归与栈行为。

    必要假设

    C允许借助显式状态或栈结构改写;具体编译器可做尾调用优化但非语言保证。

    C++11 / 算法语义

    C++栈溢出通常不是可恢复的标准异常,不能保证继续执行。

    命题预期

    D错误。

    推导结论

    训练答案D;解析显著注明B、C的必要语境。

    13|2026-03-L5-TF-10

    学生训练答案:F

    原卷事实

    题面断言改写后一定显式使用栈。

    必要假设

    讨论可终止、可实现的递归程序。

    C++11 / 算法语义

    尾递归和某些简单递归可直接用循环与常量状态改写,不一定显式用栈。

    命题预期

    判断为假。

    推导结论

    训练答案F。

    14|2026-06-L5-TF-08

    学生训练答案:F

    原卷事实

    f1循环变量倍增;f2生成两个n-1子调用。

    必要假设

    n为正整数,忽略空循环体的实现优化争议。

    C++11 / 算法语义

    f1为O(log n),f2为O(2ⁿ),f1不更高。

    命题预期

    判断为F。

    推导结论

    训练答案F。

    15|2025-03-L5-SC-08

    学生训练答案:D

    原卷事实

    官网factorialB循环后缺少return res,官方答案为D。

    必要假设

    学生校注版只在factorialB函数末尾补return res。

    C++11 / 算法语义

    补正后factorialA递归、factorialB迭代,二者对不触发有符号溢出的输入计算相同阶乘,均为O(n)。

    命题预期

    命题预期选择“factorialB采用递归方式”这一错误说法D。

    推导结论

    学生训练答案D;官网缺失返回语句的原代码永久保留。

    16|2025-06-L5-SC-10

    学生训练答案:D(官方答案:C;本题按校注版判题)

    原卷事实

    当前find_max以范围for迭代,官方答案表给C。

    必要假设

    空间复杂度采用算法常见的辅助空间口径,不把输入vector本身计入;输入非空。

    C++11 / 算法语义

    A、B、C按代码均为真;当前迭代版辅助空间O(1),上题递归分治调用栈O(log n),D为错误。

    命题预期

    官网答案C与代码事实冲突。

    推导结论

    用户批准学生训练答案D;官网题面及官方C永久保留。

    • 1

    信息

    ID
    79
    时间
    1000ms
    内存
    256MiB
    难度
    轻松上手
    标签
    递交数
    0
    已通过
    0
    上传者