数学推理 | HJ82 将真分数分解为埃及分数

# 最优解
from fractions import Fraction
while True:
    try:
        num = input()
        frac = Fraction(num)
        fz, fm = frac.numerator, frac.denominator
        res = []
        while True:
            if fz == 1:
                res.append(f'1/{fm}')
                break
            elif fz == 3 and fm % 2 == 0:
                fz = 1
                res.append('1/{}'.format(fm))
                fm = fm // 2
            else:
                res.append('1/{}'.format(fm//fz+1))
                subtraction = Fraction(fz, fm) - Fraction(1, fm//fz+1)
                fz = subtraction.numerator
                fm = subtraction.denominator
        print('+'.join(res))

    except:
        break

用时:1.5h

#数学逻辑#
华为笔试刷题 文章被收录于专栏

高质量题: 1~40:HJ16,HJ22,HJ24,HJ26,HJ27,HJ28,HJ35,HJ37,HJ39; 40~80:HJ41,HJ42,HJ43,HJ44,HJ48,HJ50,HJ52,HJ53,HJ57,HJ61,HJ63,HJ64,HJ70,HJ71,HJ74,HJ77; 80~108:HJ82,HJ85,HJ88,HJ89,HJ93,HJ95,HJ98,HJ103,HJ107

全部评论

相关推荐

兄弟们,绩效自评一定得给自己打A啊!千万别谦虚给低分,不然领导正愁给谁高分,你这不就“主动请缨”了嘛,而且多数领导不会给你更高分。我几年前试用期绩效自评打了B,领导就给了同等级,还好是试用期。真别等领导主动给高评价!
准备进厂的劳伦斯很迷人:小学时候有个册子 自评 小组 老师 我谦虚打了个b 小组别人给我打b 老师来句我觉得能给他打a 但是小组长说他自评是b怎么能打高呢 那时候我才明白的道理
点赞 评论 收藏
分享
点赞 评论 收藏
分享
只写bug的程序媛:人家说一本以上,不是及以上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务