【发布时间】:2011-05-27 17:58:24
【问题描述】:
两个数字的 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。但是,一旦我有一对非零整数被比较和/或逻辑,我不明白会发生什么以及为什么。
有人可以指导我完成这个功能吗?
【问题讨论】:
标签: python algorithm factorization