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

将真分数分解为埃及分数

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

仍然是公式求解:

a/b = 1/(p1+1) + (a-r1)/b*(p1+1)

其中:

p1 = b/a

r1 = b%a

更新:

a = a-r1

b = b*(p1+1)

终止循环条件:

  1. a==1:

除到头了,t=a/b

  1. b%a==0:

a 可以被 b 整除,这个时候 t =1 /(b/a) = 1/ p1

while True:
    try:
        a,b = list(map(int,input().split('/')))
        flag = True
        t=[]
        while flag:
            p = int(b/a)
            r = int(b%a)
            if r==0 and a > 1:
                t.append('1'+'/'+ str(p))
                flag=False
            elif a==1:
                t.append('1'+'/'+ str(b))
                flag = False
            else:
                t.append('1'+'/'+ str(p+1))
                a = a-r
                b = b*(p+1)
        print("+".join(t))
                
    except:
        break
全部评论

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳  yidao,试用期 6 个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务