题解 | #将真分数分解为埃及分数#
将真分数分解为埃及分数
http://www.nowcoder.com/practice/e0480b2c6aa24bfba0935ffcca3ccb7b
没研究过算法,就硬解,提交后不超时通过。
遍历分母相减,但是注意遍历的分母大于原数分母时,不再加一,而是改成加倍。
from fractions import Fraction
while True:
try:
target = Fraction(input())
mother = target.denominator
l = [] #存放埃及分母
n=2
while target.numerator != 1:
if target > Fraction(1,n):
l.append(str(n))
target = target - Fraction(1,n)
if n >= mother:
n += mother
else:
n += 1
l.append(str(target.denominator))
print('1/'+'+1/'.join(l))
except:
break 

查看24道真题和解析