埃及分数的Python循环

时间:2016-02-10 20:15:36

标签: loops python-3.x fractions

所以我制作了一个python3程序,它给出了正常分数的埃及分数。

XML

当然现在它可以工作,但循环永远不会结束, 我能做些什么来结束它?

我想出了一些东西,但这不起作用。

fraction = (int(input())/int(input()))

i = 1
while True:
    if fraction > (1/i):
        print(i)
        fraction = fraction - (1/i)
    i += 1

1 个答案:

答案 0 :(得分:2)

我有三个建议。

  • 使用fractions模块,因为浮点数不能提供所需的精确度。
  • 当分数为零时,使while循环终止。
  • 将您的if条件更改为“> =”而不是“>”。

from fractions import Fraction

f = Fraction(int(input()), int(input()))

i = 1
while f > 0:
    if f >= Fraction(1,i):
        print(i)
        f -= Fraction(1,i)
    i += 1