递归函数求最大公约数
int gcd(int x, int y)
{
if (y == 0)
{
return x;
}
return gcd(y, x % y);
}
计算 24 与18 的最大公约数
- gcd(24, 18) - 由于 y =18 不为 0,因此它用 gcd(18, 24 % 18) 调用自身。
- gcd(18, 24 % 18) -> gcd(18, 6) - 由于 y =6 不为 0,因此它用 gcd(6, 18 % 6) 调用自身。
- gcd(6, 18 % 6) -> gcd(6, 0) - 现在 y =0,因此返回 x =6。
- 最终结果是6,也就是24和18的GCD。