递归法求两个数的最大公约数
递归法求两个数的最大公约数的基本思想是:如果两个数a和b的最大公约数为d,则a和b可以表示成a=dx和b=dy的形式,其中x和y互质。因此,我们可以递归地求x和y的最大公约数,直到x和y相等为止,此时的值就是a和b的最大公约数d。
具体的递归算法如下:
- 如果b等于0,则最大公约数为a。
- 否则,最大公约数为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 著作权归作者所有。请勿转载和采集!