✏️ 纠错
第 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的初始大小如何,代码均适用。