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