3、 利用递归函数的原理,设计一个求两个正整数的最大公约数的递归函数,并调用该函数验证结果。
时间: 2024-04-30 16:01:49 浏览: 134
下面是求两个正整数最大公约数的递归函数:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
该函数的递归原理是:如果 b 是 0,那么最大公约数就是 a;否则,最大公约数就是 b 和 a%b 的最大公约数。
我们可以调用这个函数来验证结果,例如:
```python
print(gcd(12, 18)) # 输出6
print(gcd(24, 36)) # 输出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,因此该递归函数的输出结果是正确的。
阅读全文