每日一題 最简分数

Posted Roam-G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一題 最简分数相关的知识,希望对你有一定的参考价值。

1447. 最简分数

难度中等

给你一个整数 n ,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于  n 的 最简 分数 。分数可以以 任意 顺序返回。

示例 1:

输入:n = 2 输出:["1/2"] 解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。

示例 2:

输入:n = 3 输出:["1/2","1/3","2/3"]

示例 3:

输入:n = 4 输出:["1/2","1/3","1/4","2/3","3/4"] 解释:"2/4" 不是最简分数,因为它可以化简为 "1/2" 。

示例 4:

输入:n = 1 输出:[]

提示:

  • 1 <= n <= 100

通过次数22,357

提交次数33,159

 Java

``` 

class Solution 
    public List<String> simplifiedFractions(int n) 
        List<String> ans = new ArrayList<String>();
        for (int denominator = 2; denominator <= n; ++denominator) 
            for (int numerator = 1; numerator < denominator; ++numerator) 
                if (gcd(numerator, denominator) == 1) 
                    ans.add(numerator + "/" + denominator);
                
            
        
        return ans;
    

    public int gcd(int a, int b) 
        return b != 0 ? gcd(b, a % b) : a;
    

python

class Solution:
    def simplifiedFractions(self, n: int) -> List[str]:
        return [f"numerator/denominator" for 
            denominator in range(2, n + 1) for 
            numerator in range(1, denominator) 
            if gcd(denominator, numerator) == 1]

以上是关于每日一題 最简分数的主要内容,如果未能解决你的问题,请参考以下文章

《LeetCode之每日一题》:167.分数到小数

埃及分数

java 如何把小数变成分数

java怎么把小数转为分母为一位数的分数

分数的四则运算

算法学习——枚举之最简真分数