正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-J 2025 第一轮真题 › 第 3 题
CSP-J 2025 第一轮 第 3 题:calc(5) 的返回值
题目
函数 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);
}
选项
- 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号