【leetcode】1447. Simplified Fractions
题目如下:
Given an integer
n
, return a list of all simplified fractions between 0 and 1 (exclusive) such that the denominator is less-than-or-equal-ton
. The fractions can be in any order.Example 1:
Input: n = 2 Output: ["1/2"] Explanation: "1/2" is the only unique fraction with a denominator less-than-or-equal-to 2.Example 2:
Input: n = 3 Output: ["1/2","1/3","2/3"]Example 3:
Input: n = 4 Output: ["1/2","1/3","1/4","2/3","3/4"] Explanation: "2/4" is not a simplified fraction because it can be simplified to "1/2".Example 4:
Input: n = 1 Output: []Constraints:
1 <= n <= 100
解题思路:关键在于计算分子和分母的最大公约数是否是1。
代码如下:
class Solution(object): def simplifiedFractions(self, n): """ :type n: int :rtype: List[str] """ def gcd(m, n): if not n: return m else: return gcd(n, m % n) res = [] for i in range(1,n+1): for j in range(1,i): if gcd(i,j) == 1: res.append(str(j) + '/' + str(i)) return res