递归法求两个数的最大公约数的基本思想是:如果两个数a和b的最大公约数为d,则a和b可以表示成a=dx和b=dy的形式,其中x和y互质。因此,我们可以递归地求x和y的最大公约数,直到x和y相等为止,此时的值就是a和b的最大公约数d。

具体的递归算法如下:

  1. 如果b等于0,则最大公约数为a。
  2. 否则,最大公约数为b和a除以b的余数的最大公约数。

代码实现如下:

int gcd(int a, int b) {
    if (b == 0) {
        return a;
    } else {
        return gcd(b, a % b);
    }
}

示例:

输入: a = 24, b = 36

输出: 12

递归法求两个数的最大公约数

原文地址: https://www.cveoy.top/t/topic/fpXY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录