Python 埃及分数循环
Python loop for egyptian fractions
所以我做了一个 python3 程序,给出了正常分数的埃及分数。
fraction = (int(input())/int(input()))
i = 1
while True:
if fraction > (1/i):
print(i)
fraction = fraction - (1/i)
i += 1
当然现在可以了,但是循环永远不会结束,
我该怎么做才能结束它?
我想到了一些办法,但这行不通。
if fraction.numerator == 1:
break
我有三个建议。
- 使用
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
所以我做了一个 python3 程序,给出了正常分数的埃及分数。
fraction = (int(input())/int(input()))
i = 1
while True:
if fraction > (1/i):
print(i)
fraction = fraction - (1/i)
i += 1
当然现在可以了,但是循环永远不会结束, 我该怎么做才能结束它?
我想到了一些办法,但这行不通。
if fraction.numerator == 1:
break
我有三个建议。
- 使用
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