From 26830d069012e2c17046aeb10b93e23efa711201 Mon Sep 17 00:00:00 2001 From: Tianyi Zheng Date: Thu, 17 Aug 2023 19:39:46 -0700 Subject: [PATCH 1/3] Add doctests to continued_fraction.py for 0 and neg nums --- maths/continued_fraction.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maths/continued_fraction.py b/maths/continued_fraction.py index 25ff649db77a..a3c8097d432f 100644 --- a/maths/continued_fraction.py +++ b/maths/continued_fraction.py @@ -29,6 +29,12 @@ def continued_fraction(num: Fraction) -> list[int]: [0, 2, 4] >>> continued_fraction(Fraction("415/93")) [4, 2, 6, 7] + >>> continued_fraction(Fraction(0)) + [0] + >>> continued_fraction(Fraction(0.75)) + [0, 1, 3] + >>> continued_fraction(Fraction("-2.25")) + [-3, 1, 3] # -2.25 = -3 + 0.75 """ numerator, denominator = num.as_integer_ratio() continued_fraction_list: list[int] = [] From 19bd37967337c6a4abb6d609c27df2d6620c156a Mon Sep 17 00:00:00 2001 From: Tianyi Zheng Date: Thu, 17 Aug 2023 20:36:10 -0700 Subject: [PATCH 2/3] Fix continued_fraction.py to work for negative nums Fix continued_fraction.py to work for negative nums by replacing int() call with floor() --- maths/continued_fraction.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/maths/continued_fraction.py b/maths/continued_fraction.py index a3c8097d432f..e95d5196e0a1 100644 --- a/maths/continued_fraction.py +++ b/maths/continued_fraction.py @@ -6,6 +6,7 @@ from fractions import Fraction +from math import floor def continued_fraction(num: Fraction) -> list[int]: @@ -39,7 +40,7 @@ def continued_fraction(num: Fraction) -> list[int]: numerator, denominator = num.as_integer_ratio() continued_fraction_list: list[int] = [] while True: - integer_part = int(numerator / denominator) + integer_part = floor(numerator / denominator) continued_fraction_list.append(integer_part) numerator -= integer_part * denominator if numerator == 0: From 41985457d97a99ca988fa88e66e1775606ca8619 Mon Sep 17 00:00:00 2001 From: Tianyi Zheng Date: Thu, 17 Aug 2023 20:42:27 -0700 Subject: [PATCH 3/3] Move comment in doctest --- maths/continued_fraction.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maths/continued_fraction.py b/maths/continued_fraction.py index e95d5196e0a1..04ff0b6ff0d2 100644 --- a/maths/continued_fraction.py +++ b/maths/continued_fraction.py @@ -34,8 +34,8 @@ def continued_fraction(num: Fraction) -> list[int]: [0] >>> continued_fraction(Fraction(0.75)) [0, 1, 3] - >>> continued_fraction(Fraction("-2.25")) - [-3, 1, 3] # -2.25 = -3 + 0.75 + >>> continued_fraction(Fraction("-2.25")) # -2.25 = -3 + 0.75 + [-3, 1, 3] """ numerator, denominator = num.as_integer_ratio() continued_fraction_list: list[int] = []