两个数的 GCF 的欧几里德算法是:GCF(a, b)=GCF(b, a mod b)
. 我已经看到这在 Python 中实现如下:
def gcf(a, b):
return b and gcf(b, a%b) or a
我不明白如何解析这个函数或具体如何将布尔逻辑应用于整数。例如,gcf(42, 56) = 14
。当我浏览它时,我看到递归部分最终返回零。我按照那个0 or n == n
和0 and n == 0
. 但是,一旦我将一对非零整数与和/或逻辑进行比较,我就不明白会发生什么以及为什么。
有人可以引导我完成此功能吗?