9. 求两个整数m与n的最大公约数。
时间: 2023-06-01 10:02:22 浏览: 72
可以使用辗转相除法(欧几里得算法)求解。
假设m>n,用n去除m,如果余数为0,则n即为最大公约数;否则用m除以余数,再用上一步的余数去除上一步的除数,重复这个过程直到余数为0,此时上一步的除数即为最大公约数。
用公式表示为:
gcd(m,n) = gcd(n, m%n)
具体实现可以使用递归或循环。下面是使用递归的代码实现:
```
int gcd(int m, int n) {
if (n == 0) {
return m;
} else {
return gcd(n, m % n);
}
}
```
使用循环的代码实现:
```
int gcd(int m, int n) {
while (n != 0) {
int r = m % n;
m = n;
n = r;
}
return m;
}
```
阅读全文