int gysint mint n;某中m 和口 都是用户传入的委数。函数用道归法求m 和n的最大公约数。Hinclucesstdiohsint gysint mint nint main0int mnscanfdd&m&n;printfdIn gysmn;return 0;输入样例:24 16输山样例:8
这里提供一种使用辗转相除法求最大公约数的代码实现:
#include <stdio.h>
// 辗转相除法求最大公约数
int gys(int m, int n) {
if (n == 0) {
return m;
} else {
return gys(n, m % n);
}
}
int main() {
int m, n;
scanf("%d%d", &m, &n);
printf("%d\n", gys(m, n));
return 0;
}
代码中,gys 函数采用递归实现,如果 n 等于 0,返回 m,否则返回 n 和 m % n 的最大公约数。在 main 函数中,先读入 m 和 n,然后调用 gys 函数求解最大公约数并输出。
原文地址: https://www.cveoy.top/t/topic/fpXQ 著作权归作者所有。请勿转载和采集!