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

将真分数分解为埃及分数

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

没研究过算法,就硬解,提交后不超时通过
遍历分母相减,但是注意遍历的分母大于原数分母时,不再加一,而是改成加倍。
from fractions import Fraction 
while True:
    try:
        target = Fraction(input())
        mother = target.denominator
        l = []    #存放埃及分母
        n=2
        while target.numerator != 1:
            if target > Fraction(1,n):
                l.append(str(n))
                target = target - Fraction(1,n)
            if n >= mother:
                n += mother
            else:
                n += 1
        l.append(str(target.denominator))
        print('1/'+'+1/'.join(l))
    except:
        break

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:11
点赞 评论 收藏
分享
06-22 10:41
赣东学院 Java
程序员小白条:?周六晚上投,这是什么操作,专门找996起步的吗
点赞 评论 收藏
分享
06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
宇算唯航:目测实缴资本不超100W的小公司
点赞 评论 收藏
分享
评论
6
1
分享

创作者周榜

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