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

将真分数分解为埃及分数

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

import math

a,b = map(int,input().split('/'))

def divide(a,b):
    if b % a == 0:
        print(f"1/{b // a}")
    else:
        res = []
        while a > 1:
            q = b // a + 1
            a = a * q - b
            b = b * q
            res.append(f"1/{q}")

            common = math.gcd(a, b)
            a //= common
            b //= common
            
        res.append(f"1/{b}")
        print("+".join(res))
    return 0
    
divide(a,b)

每次减去一个最大的单位分数,找最大公因数,约分,判断分子是否为1,若不是则继续减

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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