题解 | #将真分数分解为埃及分数#
将真分数分解为埃及分数
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