#3548. [GESP202512 五级 C++] 第 5 题

[GESP202512 五级 C++] 第 5 题

下面代码实现了欧几里得算法。下面有关说法,错误的是( )。

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;
}

{{ select(1) }}

  • gcd1() 实现为递归方式。
  • gcd2() 实现为迭代方式。
  • a 较大时,gcd1() 实现会多次调用自身,需要较多额外的辅助空间。
  • a 较大时,gcd1() 的实现比 gcd2() 执行效率更高。