下面代码实现了欧几里得算法。下面有关说法,错误的是( )。
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()执行效率更高。