用c++编写函数,求两个正整数m和n的最大公约数
时间: 2023-12-30 21:20:43 浏览: 122
有两个数据系列分别为-谭浩强经典C++
可以使用欧几里得算法,也称为辗转相除法,来求解两个正整数m和n的最大公约数。
C++代码如下:
```c++
int gcd(int m, int n) {
if (n == 0) {
return m;
} else {
return gcd(n, m % n);
}
}
```
该函数递归地计算m和n的最大公约数,直到n等于0时,返回m。如果n不等于0,则递归调用gcd函数,计算n和m除以n的余数的最大公约数。
例如,如果调用gcd(12, 8),则首先计算12 % 8 = 4,然后递归调用gcd(8, 4),再计算8 % 4 = 0,返回4,即12和8的最大公约数是4。
阅读全文