下列 C++ 代码用两种方式求解两个正整数的最大公约数,说法错误的是( )。
int gcd0(int big, int small) {
if (big < small) {
swap(big, small);
}
if (big % small == 0) {
return small;
}
return gcd0(small, big % small);
}
int gcd1(int big, int small) {
if (big < small) {
swap(big, small);
}
for (int i = small; i >= 1; --i) {
if (big % i == 0 && small % i == 0)
return i;
}
return 1;
}
- A.
gcd0()函数的时间复杂度为 - B.
gcd1()函数的时间复杂度为 - C. 一般说来,
gcd0()的效率高于gcd1() - D.
gcd1()中的代码
for (int i = small; i >= 1; --i)
应该修改为
for (int i = small; i > 1; --i)