欧几里得算法(辗转相除法)-- 计算两个数的最大公约数

欧几里得,算法,辗转,除法,计算,两个,最大公约数 · 浏览次数 : 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))

与欧几里得算法(辗转相除法)-- 计算两个数的最大公约数相似的内容: