【问题标题】:Reduce Function减少功能
【发布时间】:2020-11-01 13:40:45
【问题描述】:

给定一个有理数列表,找出它们的乘积。

概念 reduce() 函数从左到右连续地在对象列表上累积应用两个参数的函数,以将其减少为一个值。假设您有一个列表,例如 [1,2,3],您必须找到它的总和。

减少(λ x, y : x + y,[1,2,3]) 6 您还可以定义一个初始值。如果指定,该函数将假定初始值作为给定值,然后减少。相当于在列表的开头添加初始值。例如:

reduce(lambda x, y : x + y, [1,2,3], -3) 3

从分数导入 gcd 减少(gcd,[2,4,8],3) 1 输入格式

第一行包含有理数的个数。 下一行包含两个整数,即列表中有理数的分子( )和分母( )。

约束

输出格式

仅以最简单的形式打印包含列表中数字乘积的分子和分母的一行,即分子和分母除了 . 之外没有公约数。

样本输入 0

3 1 2 3 4 10 6 样本输出 0

5 8

【问题讨论】:

    标签: function reduce


    【解决方案1】:
        from fractions import Fraction
    from functools import reduce
    
    def product(fracs):
        t =reduce(lambda x,y:Fraction(x.numerator*y.numerator,x.denominator*y.denominator),fracs)
        return t.numerator, t.denominator
    
    if __name__ == '__main__':
        fracs = []
        for _ in range(int(input())):
            fracs.append(Fraction(*map(int, input().split())))
        result = product(fracs)
        print(*result)
    

    【讨论】:

      【解决方案2】:
      def product(fracs):
          t=reduce(lambda x,y:x*y,fracs)
          return t.numerator, t.denominator
      

      【讨论】:

        猜你喜欢
        • 2018-10-29
        • 1970-01-01
        • 2020-03-25
        • 1970-01-01
        • 2016-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多