用递归函数求最大公约数
时间: 2023-10-26 07:07:40 浏览: 84
以下是递归函数求最大公约数的 Python 代码实现:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
其中,`a` 和 `b` 分别表示要求最大公约数的两个整数。函数不断地将 `b` 和 `a % b` 的值代入自己,直到 `b` 等于 0,此时递归结束,返回 `a` 即为两数的最大公约数。
相关问题
使用递归函数计算最大公约数(gcd.py)
好的,以下是使用递归函数计算最大公约数的 Python 代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
其中,`a` 和 `b` 分别表示需要求最大公约数的两个整数,函数返回它们的最大公约数。在函数内部,首先判断 `b` 是否为 0,如果是,直接返回 `a`,否则,递归调用函数 `gcd`,将 `b` 和 `a % b` 作为参数传入,继续求解最大公约数。
编写两个函数用递归法求最大公约数由最大公约数求得最小公倍数并在主函数中调用这两个函数
好的,这个问题我可以回答。请看以下代码:
```c
#include <stdio.h>
int gcd(int a, int b); // 求最大公约数函数
int lcm(int a, int b, int g); // 由最大公约数求最小公倍数函数
int main()
{
int a, b, g, l;
printf("Please enter two positive integers separated by a space: ");
scanf("%d %d", &a, &b);
g = gcd(a, b); // 求最大公约数
l = lcm(a, b, g); // 由最大公约数求最小公倍数
printf("GCD: %d\n", g);
printf("LCM: %d\n", l);
return 0;
}
int gcd(int a, int b)
{
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int lcm(int a, int b, int g)
{
return a * b / g;
}
```
在这个程序中,我们首先定义了两个函数 `gcd` 和 `lcm`,它们分别计算最大公约数和最小公倍数。其中 `gcd` 函数用到了递归,它不断将较大的数除以较小的数取余,直到余数为 0,此时较小的数即为两个数的最大公约数。`lcm` 函数则根据公式 LCM(a, b) = a * b / GCD(a, b) 计算最小公倍数。在主函数中,我们先输入两个正整数,然后调用 `gcd` 函数求最大公约数,再用它调用 `lcm` 函数求最小公倍数,并输出结果。
希望这个程序能够满足您的需求。
阅读全文