✏️ 纠错
第 192 题 / 共 251 题
二、判断题 第1题 下面C++代码是用欧几里得算法(辗转相除法)求两个正整数的最大公约数,a大于b还是小于b都适用。
int gcd(int a, int b) {
    while (b) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}
📝 题目解析

答案:√

知识点:辗转相除法(欧几里得算法)的特性,对输入数据大小关系的适应性

解析:若a < b,第一次循环中a % b结果为a,随后b变为a,a变为原b,即自动交换大小,因此无论a和b的初始大小如何,代码均适用。