欧几里得算法(辗转相除法)-- 计算两个数的最大公约数
欧几里得,算法,辗转,除法,计算,两个,最大公约数
·
浏览次数 : 6
小编点评
**递归解题函数 gcd()**
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
**非递归解题函数 gcd2()**
```python
def gcd2(a, b):
while b > 0:
r = a % b
a = b
b = r
return a
```
**使用示例**
```python
print(gcd(12, 16)) # 输出 4
print(gcd2(12, 16)) # 输出 4
```
**总结**
递归解题函数 `gcd()` 使用递归调用来计算两个数字的最大公约数 (GCD)。非递归解题函数 `gcd2()` 使用pelier循环来计算两个数字的 GCD。
正文
博客地址:https://www.cnblogs.com/zylyehuo/
# -*- coding: utf-8 -*-
# 递归
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
print(gcd(12, 16))
# 非递归
def gcd2(a, b):
while b > 0:
r = a % b
a = b
b = r
return a
print(gcd2(12, 16))
与欧几里得算法(辗转相除法)-- 计算两个数的最大公约数相似的内容: