GESP 五级 · GESP 202509 C++ 五级 第 17 题

判断题 · 答案 B · 考点:函数、数论基础

← 整套速查表 GESP 五级 全部真题

题目

假设函数 gcd() 能正确求两个正整数的最大公约数,则下面的 findMusicalPattern(4, 6) 函数返回 2。

void findMusicalPattern(int rhythm1, int rhythm2) {
    int commonDivisor = gcd(rhythm1, rhythm2);
    int patternLength = (rhythm1 * rhythm2) / commonDivisor;
    return patternLength;
}
答案:B

考点

函数数论基础

解题思维

辗转相除法求最大公约数:gcd(a,b) = gcd(b, a%b),当b=0时返回a。时间复杂度O(log min(a,b))。

常见错误

审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。

详细解析(节选)

【考点】最小公倍数计算|函数语义理解|数论基础

1. 🎯 考纲定位

本题考查《GESP 五级大纲》“数论基础”模块,命题人把“最大公约数”和“最小公倍数”这两个相邻但不同的概念揉在一起,专门卡住那些只会背公式、不懂数学本质的考生——这是五级卷的典型特征:用正确的公式配错误的语义。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断