递归法求两个数的最大公约数。 函数接口定义: int gys(int m,int n); 其中 m 和 n 都是用户传入的参数。函数用递归法求m 和 n的最大公约数。 裁判测试程序样例: #include <stdio.h> int gys(int m,int n); int main() { int m,n; scanf("%d%d",&m,&n); printf("%d\n",gys(m,n)); return 0; } /* 请在这里填写答案 */ 输入样例: 24 16 输出样例: 8
时间: 2024-02-25 22:57:22 浏览: 134
使用递归法求最大公约数
下面是递归法求解两个数的最大公约数的C语言代码:
```c
int gys(int m, int n) {
if (n == 0) {
return m;
}
return gys(n, m % n);
}
```
这里采用了辗转相除法,即不断将两数中较大的数用较小的数取余,直到小的数为0,此时大的数就是最大公约数。递归的过程就是不断将两数中的较小的数和两数的余数作为参数传入函数本身,直到余数为0,返回最大公约数。
阅读全文