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

将真分数分解为埃及分数

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

全部评论

相关推荐

10-11 17:48
已编辑
门头沟学院 Web前端
kabuu:问多了怕遇到聪明人坑不了了,说不定里面很坑呢,还是相信自己的选择吧
点赞 评论 收藏
分享
09-30 11:52
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务