题解 | #将真分数分解为埃及分数#
将真分数分解为埃及分数
https://www.nowcoder.com/practice/e0480b2c6aa24bfba0935ffcca3ccb7b
from fractions import Fraction
while True:
try:
m, n = map(int,input().split("/"))
tem = Fraction(m, n)
#获取分子和分母的值
m = Fraction(tem).numerator
n = Fraction(tem).denominator
#从二分之一开始,如果m/n大于二分之一就减二分之一,大于三分之一就减去三分之一,减到分子为一时
k = 2
while m != 1:
if m / n > 1 / k:
print(Fraction(1, k), end="+")
#分数运算
tem = Fraction(m, n) - Fraction(1, k)
m = Fraction(tem).numerator
n = Fraction(tem).denominator
else:
k += 1
#把最后一个n分之一补上
print(Fraction(1, n))
except:
break
查看16道真题和解析