#3572. [GESP202603 五级 C++] 第 4 题

[GESP202603 五级 C++] 第 4 题

对如下代码实现的欧几里得算法(辗转相除法),执行 gcd(48, 18) 得到的调用序列为( )。

int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}

{{ select(1) }}

  • gcd(48,18) -> gcd(18,12) -> gcd(12,6) -> gcd(6,0)
  • gcd(48,18) -> gcd(30,18) -> gcd(12,18)
  • gcd(48,18) -> gcd(18,30) -> gcd(30,6)
  • gcd(48,18) -> gcd(12,18) -> gcd(6,12)