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

将真分数分解为埃及分数

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
全部评论

相关推荐

06-26 17:24
已编辑
宁波大学 Java
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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