下面代码实现了欧几里得算法。下面有关说法,错误的是( )。
int gcd1(int a, int b) {
return b == 0 ? a : gcd1(b, a % b);
}
int gcd2(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
- A. gcd1() 实现为递归方式。
- B. gcd2() 实现为迭代方式。
- C. 当 较大时, gcd1() 实现会多次调用自身,需要较多额外的辅助空间。
- D. 当 较大时, gcd1() 的实现比 gcd2() 执行效率更高。
正确答案:D