用递归法求两个数的最大公约数。(用c语言)
时间: 2024-03-11 09:47:38 浏览: 40
使用递归法求最大公约数
好的,这是一个经典的递归问题,以下是用 C 语言实现的代码:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
int main() {
int a, b;
printf("请输入两个数,用空格隔开:");
scanf("%d %d", &a, &b);
int result = gcd(a, b);
printf("最大公约数是:%d\n", result);
return 0;
}
```
我们定义了一个 `gcd` 函数,它接收两个参数 `a` 和 `b`,并返回它们的最大公约数。在函数中,我们先判断如果 `b` 等于 0,那么 `a` 就是最大公约数,直接返回。否则,我们递归调用 `gcd` 函数,把 `b` 和 `a % b` 作为参数传入。
在 `main` 函数中,我们读入两个数,调用 `gcd` 函数求出最大公约数,并输出结果。
希望能够帮到你!
阅读全文