3、 利用递归函数的原理,设计一个求两个正整数的最大公约数的递归函数,并调用该函数验证结果
时间: 2024-04-30 17:03:54 浏览: 95
可以使用辗转相除法来求两个正整数的最大公约数。具体实现如下:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
其中,如果 b 等于 0,那么 a 就是最大公约数;否则,继续递归求解 a 和 b 的余数的最大公约数。
下面我们来验证一下该函数的正确性,例如求解 24 和 36 的最大公约数:
```python
print(gcd(24, 36)) # 输出 12
```
可以看到,输出结果为 12,与我们手工计算的结果一致,因此该函数实现是正确的。
相关问题
利用递归函数原理,设计一个求两个正整数的最大公约数的递归函数,并调用该函数的验证结果
下面是求两个正整数的最大公约数的递归函数实现:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
函数的基本思路是利用求最大公约数的欧几里得算法(辗转相除法)。具体实现中,如果 b 为 0,则 a 就是最大公约数;否则,将 b 与 a 取模的结果作为新的 a,b 作为新的 b,继续递归求解。
下面是一个简单的测试:
```python
print(gcd(12, 18)) # 输出6
```
结果为 6,符合预期。
利用递归函数原理,设计一个求两个正整数的最大公约数的递归函数,并调用该函数的
代码如下:
```python
def gcd(a, b):
"""
递归函数求最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
# 调用函数
a = 24
b = 16
print("最大公约数为:", gcd(a, b))
```
输出结果为:
```
最大公约数为: 8
```
解释:24和16的最大公约数为8,因此该递归函数的输出结果是正确的。
阅读全文