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

将真分数分解为埃及分数

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

import itertools

while True:
    try: 
        a, b = map(int, input().split('/'))
        v = 0
        nums = []

        for n in itertools.count(start=2):
            if a/b > v+1/n:
                v += 1/n
                nums.append(f'1/{n}')
            elif a/b == v+1/n:
                nums.append(f'1/{n}')
                break

        print('+'.join(nums))

    except: 
        break


# 1. if a/b == v + 1/n, break and output result
# 2. if a/b > v + 1/n, append k to num
# 3. if a/b < v+1/n, keep looping but skip n, i.e. dont append current n to num.

一种贪心算法的思路,每次都加入求和后不超过真分数的最大埃及分数,然而超时了

全部评论

相关推荐

12-27 22:36
门头沟学院 Java
点赞 评论 收藏
分享
11-23 15:14
中原工学院 Java
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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