利用递归求两个数的最大公约数(利用辗转相除法) f(m,n)
时间: 2023-12-15 13:05:18 浏览: 80
辗转相除法求两个数的最大公约数
好的,我来给您讲解一下如何利用递归求两个数的最大公约数。
辗转相除法,又称欧几里得算法,是求两个正整数的最大公约数的一种方法。它的具体步骤是:用较大的数除以较小的数,再用除数除以出现的余数(第一余数),再用第一余数除以出现的余数(第二余数),如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
利用递归实现辗转相除法,可以采用以下思路:
1. 如果 m%n==0,那么n就是最大公约数;
2. 否则,最大公约数等于n和m%n的最大公约数。
根据以上思路,我们可以写出如下的递归函数:
```
int gcd(int m, int n) {
if (n == 0) {
return m;
} else {
return gcd(n, m % n);
}
}
```
以上函数即为利用递归求两个数的最大公约数的代码实现,其中m和n分别表示两个需要求最大公约数的正整数。
阅读全文