正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-J 2025 第一轮真题 › 第 3 题

CSP-J 2025 第一轮 第 3 题:calc(5) 的返回值

单项选择 · 函数与递归 · 难度 容易 · 答案 B

题目

函数 calc(n) 的定义如下,则 calc(5) 的返回值是多少?( )

int calc(int n) {
    if (n <= 1) return 1;
    if (n % 2 == 0) return calc(n / 2) + 1;
    else return calc(n - 1) + calc(n - 2);
}
CSP-J 2025 第一轮 第 3 题 原题
原题扫描(页面加载后可直接在线作答)

选项

  • A. $5$
  • B. $6$
  • C. $7$
  • D. $8$

答案

B

题解

答案是 B.6。

按照函数的规则,从小到大计算:

  • calc(1) = 1,因为 n <= 1,直接返回 1。
  • calc(2) = calc(1) + 1 = 2,因为 2 是偶数。
  • calc(3) = calc(2) + calc(1) = 2 + 1 = 3,因为 3 是奇数。
  • calc(4) = calc(2) + 1 = 2 + 1 = 3,因为 4 是偶数。
  • calc(5) = calc(4) + calc(3) = 3 + 3 = 6。

关键是:偶数时算 calc(n / 2) + 1,奇数时才算前两项之和。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号