用递归方法编写求最大公因子程序。两个正整数x和y的最大公因子定义为:如果y<=x且x mod y=0时,gcd(x,y)=y;如果y>x时,gcd(x,y)=gcd(y,x);其他情况,gcd(x,y)=gcd(y,x mod y)。这里,x mod y是求x除以y的余数。
时间: 2023-10-10 09:12:55 浏览: 138
递归法求最大公约数和最小公倍数的实现代码
5星 · 资源好评率100%
好的,这是一个经典的求最大公因数的算法,可以用递归方法来实现。以下是C++代码示例:
```c++
int gcd(int x, int y) {
if (y <= x && x % y == 0) {
return y;
} else if (y > x) {
return gcd(y, x);
} else {
return gcd(y, x % y);
}
}
```
在这个函数中,首先判断y是否小于等于x并且x可以被y整除,如果是,则返回y。如果y大于x,则交换x和y的位置再递归调用。否则,递归调用gcd(y, x%y)。这个算法的时间复杂度是O(log n),其中n是x和y的较大值。
阅读全文