正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-J 2020 第一轮真题 › 第 6 题
CSP-J 2020 第一轮 第 6 题:递归算法XYZ的输出含义
题目
设 $A$ 是 $n$ 个实数的数组,考虑下面的递归算法: XYZ (A[1..n]) 1. if n=1 then return A[1] 2. else temp ← XYZ (A[1..n-1]) 3. if temp < A[n] 4. then return temp 5. else return A[n] 请问算法 XYZ 的输出是什么?()。

选项
- A. A 数组的平均
- B. A 数组的最小值
- C. A 数组的中值
- D. A 数组的最大值
答案
B
题解
答案是 B. A 数组的最小值。
算法每次都返回较小的数:
- 当数组只有一个元素时,返回
A[1],它就是最小值。 - 当数组有多个元素时,先递归求出前
n-1个元素的最小值temp,再与最后一个元素A[n]比较,返回两者中较小的那个。
因此,它相当于计算: \[ XYZ(A[1..n])=\min\bigl(XYZ(A[1..n-1]),\,A[n]\bigr) \] 最终得到整个数组的最小值。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号