正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-S 2022 第一轮真题 › 第15题
CSP-S 2022 第一轮 第15题:ack函数在输入参数“(2,2)”时的返回值为()。
题目
ack 函数在输入参数“(2,2)”时的返回值为()。
unsigned ack(unsigned m, unsigned n) {
if (m == 0) return n + 1;
if (n == 0) return ack(m - 1, 1);
return ack(m - 1, ack(m, n - 1));
}选项
- A. 5
- B. 7
- C. 9
- D. 13
答案
B
题解
答案是 B. 7。这道题按递归规则展开,注意先计算内层的 ack。
先看 m = 1 时:
ack(1,0) = ack(0,1) = 2ack(1,n) = ack(0,ack(1,n-1)) = ack(1,n-1) + 1
所以 ack(1,n) = n + 2。
再计算 m = 2: ```text ack(2,0) = ack(1,1) = 3
ack(2,1) = ack(1,ack(2,0)) = ack(1,3) = 5
ack(2,2) = ack(1,ack(2,1)) = ack(1,5) = 7 ```
因此返回值为 7。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号