设有一个递归算法如下:
A. 2
B. 3
C. 4
D. 5
栈
[tag_link]
正确答案:B
【解析】
计算 X(5) 时,首先调用 X(5) 一次。
由于参数 n=5 大于 3,执行 else 分支,需要递归调用 X(n-2) 即 X(3) 和 X(n-4) 即 X(1)。
调用 X(3) 时,因为 3≤3,直接返回 1,不再递归,此次调用计一次。
调用 X(1) 时,同样因为 1≤3,直接返回 1,也不再递归,此次调用也计一次。
因此,总共调用了三次 X 函数:分别是 X(5)、X(3) 和 X(1)。
对应选项为 B.3。