题解 | #将真分数分解为埃及分数#
将真分数分解为埃及分数
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.
一种贪心算法的思路,每次都加入求和后不超过真分数的最大埃及分数,然而超时了
上海得物信息集团有限公司公司福利 1166人发布