题解 | #将真分数分解为埃及分数#

将真分数分解为埃及分数

https://www.nowcoder.com/practice/e0480b2c6aa24bfba0935ffcca3ccb7b

from fractions import Fraction
while True:
    try:
        m, n = map(int,input().split("/"))
        tem = Fraction(m, n)
        #获取分子和分母的值
        m = Fraction(tem).numerator
        n = Fraction(tem).denominator
        #从二分之一开始,如果m/n大于二分之一就减二分之一,大于三分之一就减去三分之一,减到分子为一时
        k = 2
        while m != 1:
            if m / n > 1 / k:
                print(Fraction(1, k), end="+")
                #分数运算
                tem = Fraction(m, n) - Fraction(1, k)
                m = Fraction(tem).numerator
                n = Fraction(tem).denominator
            else:
                k += 1
        #把最后一个n分之一补上
        print(Fraction(1, n))
    except:
        break

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务