有如下函数 fun,则 fun(20, 12) 的返回值为( )。
int fun(int a, int b) {
if (a % b == 0)
return b;
else
return fun(b, a % b);
}仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。
【考点】递归算法|辗转相除(欧几里得算法)|最大公约数
GESP 五级「基本数据处理与算法」模块,欧几里得算法求最大公约数是必考内容。命题人卡住多数考生的是:把递归调用的返回值当成局部变量处理,没意识到每次递归返回的是新的b。