辗转相除法用c语言实现
时间: 2024-11-18 11:02:18 浏览: 27
辗转相除法求最大公约数,计算过程说明和C语言实现
在 C 语言中,辗转相除法(也叫欧几里得算法)通常用于计算两个整数的最大公约数(GCD)。以下是其基本实现:
```c
#include <stdio.h>
// 定义一个辅助函数,计算较小数除较大数的余数
int gcd_helper(int a, int b) {
if (b == 0)
return a;
else
return gcd_helper(b, a % b);
}
// 主函数计算 GCD
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
// 使用递归的方式计算 GCD
int result = gcd_helper(num1, num2);
printf("两数的最大公约数是:%d\n", result);
return 0;
}
```
在这个代码中,`gcd_helper` 函数是递归的,当 `b` 等于零时,返回 `a` 作为结果;否则,它会继续调用自身,将 `b` 和 `a` 除以 `b` 的余数作为新的参数。当输入的两个数足够小以至于 `b` 变为零时,递归结束,此时 `a` 就是最大公约数。
阅读全文