题:给你一个整数 n
,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于 n
的 最简 分数 。分数可以以 任意 顺序返回。
解: 求最简分数,等价于分母和分子最大公约数是1。
class Solution: def simplifiedFractions(self, n: int) -> List[str]: res = [] for i in range(2,n+1): for j in range(1,i): if gcd(i,j) == 1: ff = f"{j}/{i}" res.append(ff) return res
最大公约数gcd(a,b)是Python内置函数,可以直接使用。
gcd的递归实现
def gcd(a,b): return a if b == 0 else gcd(b, a%b)