Skip to content

Commit e887c14

Browse files
Fix continued_fraction.py to work for negative numbers (#8985)
* Add doctests to continued_fraction.py for 0 and neg nums * Fix continued_fraction.py to work for negative nums Fix continued_fraction.py to work for negative nums by replacing int() call with floor() * Move comment in doctest
1 parent 945803f commit e887c14

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Diff for: maths/continued_fraction.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77

88
from fractions import Fraction
9+
from math import floor
910

1011

1112
def continued_fraction(num: Fraction) -> list[int]:
@@ -29,11 +30,17 @@ def continued_fraction(num: Fraction) -> list[int]:
2930
[0, 2, 4]
3031
>>> continued_fraction(Fraction("415/93"))
3132
[4, 2, 6, 7]
33+
>>> continued_fraction(Fraction(0))
34+
[0]
35+
>>> continued_fraction(Fraction(0.75))
36+
[0, 1, 3]
37+
>>> continued_fraction(Fraction("-2.25")) # -2.25 = -3 + 0.75
38+
[-3, 1, 3]
3239
"""
3340
numerator, denominator = num.as_integer_ratio()
3441
continued_fraction_list: list[int] = []
3542
while True:
36-
integer_part = int(numerator / denominator)
43+
integer_part = floor(numerator / denominator)
3744
continued_fraction_list.append(integer_part)
3845
numerator -= integer_part * denominator
3946
if numerator == 0:

0 commit comments

Comments
 (0)