用Python使用递归编写函数计算两个数据m和n的最大公约数 1.对于已知两数m, n,使得m>n; 2.m除以n得余数r ; 3.若r=0,则n为最大公约数结束;否则执行步骤4 ; 4.m←n,n←r,再重复执行步骤2。
时间: 2023-12-14 10:38:30 浏览: 61
好的,以下是用Python递归方式计算两个数的最大公约数的代码:
```python
def gcd(m, n):
if m < n:
m, n = n, m
r = m % n
if r == 0:
return n
else:
return gcd(n, r)
```
这个函数的实现方式就是按照题目中的步骤来递归计算最大公约数。首先判断 m 和 n 的大小关系,如果 m 小于 n,则交换 m 和 n,确保 m 大于等于 n。然后计算 m 除以 n 的余数 r,如果 r 等于 0,则 n 就是最大公约数,递归结束。否则,将 m 赋值为 n,把 n 赋值为 r,再次递归调用 gcd 函数。
相关问题
使用递归编写函数计算两个数据m和n的最大公约数算法: 1.对于已知两数m, n,使得m>n ; 2.m除以n得余数r ; 3.若r=0,则n为最大公约数结束;否则执行步骤4 ;4.m←n, n←r,再重复执行步骤2.
以下是使用递归编写的计算两个数据m和n的最大公约数算法的函数代码:
```python
def gcd(m, n):
if n == 0:
return m
else:
return gcd(n, m % n)
```
在这个函数中,首先判断n是否为0,如果是,则返回m。否则,执行递归调用,将n和m%n作为参数传递给函数本身。这样,函数会反复执行这个过程,直到n为0,返回最大公约数。
编写函数计算两个数据m和n的最大公约数(不使用递归) 算法: 1.对于已知两数m,n,使得m>n; 2.m除以n得余数r; 3.若r=0,则n为最大公约数结束;否则执行步骤4; 4.m ← n,n ← r,再重复执行步骤2。
下面是代码实现:
```python
def gcd(m, n):
while n != 0:
r = m % n
m, n = n, r
return m
```
使用示例:
```python
>>> gcd(24, 36)
12
>>> gcd(15, 25)
5
```
阅读全文