正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-J 2021 第一轮真题 › 第 13 题
CSP-J 2021 第一轮 第 13 题:递归函数solve(7)的返回值
题目
考虑如下递归算法
solve(n)
if n<=1 return 1
else if n>=5 return n*solve(n-2)
else return n*solve(n-1)
则调用 solve(7) 得到的返回结果为( )。
选项
- A. 105
- B. 840
- C. 210
- D. 420
答案
C
题解
答案是 C.210。
按条件逐步展开:
solve(7):因为 \(7\ge5\),返回 \(7\times solve(5)\)。solve(5):因为 \(5\ge5\),返回 \(5\times solve(3)\)。solve(3):因为 \(1<3<5\),返回 \(3\times solve(2)\)。solve(2):因为 \(1<2<5\),返回 \(2\times solve(1)\)。solve(1):因为 \(1\le1\),返回 \(1\)。
所以: \[ solve(7)=7\times5\times3\times2\times1=\boxed{210} \]
注意:当 \(n<5\) 且 \(n>1\) 时,递归参数改为 \(n-1\),不再是 \(n-2\)。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号