From 94fe973505711daac50a00fd0797580d74f926ff Mon Sep 17 00:00:00 2001 From: agarwalpranay02 Date: Wed, 29 Oct 2025 01:47:47 +0530 Subject: [PATCH 1/5] Create fibonacci_iterative.py Add fibonacci_iterative implementation --- maths/fibonacci_iterative.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 maths/fibonacci_iterative.py diff --git a/maths/fibonacci_iterative.py b/maths/fibonacci_iterative.py new file mode 100644 index 000000000000..a23a13d1e695 --- /dev/null +++ b/maths/fibonacci_iterative.py @@ -0,0 +1,29 @@ +def fibonacci_iterative(n: int) -> int: + """ + Return the n-th Fibonacci number using an iterative approach. + + The function returns the Fibonacci number at index n where: + F(0) == 0, F(1) == 1, F(2) == 1, ... + + Examples: + >>> fibonacci_iterative(0) + 0 + >>> fibonacci_iterative(1) + 1 + >>> fibonacci_iterative(7) + 13 + """ + if n < 0: + raise ValueError("Input must be a non-negative integer") + + if n == 0: + return 0 + a, b = 0, 1 + for _ in range(1, n): + a, b = b, a + b + return b + + +if __name__ == "__main__": + # simple demonstration + print(fibonacci_iterative(7)) # expected 13 From 9b9884d2d8982e0b2e05b604a992952b8ceb9011 Mon Sep 17 00:00:00 2001 From: agarwalpranay02 Date: Wed, 29 Oct 2025 02:00:13 +0530 Subject: [PATCH 2/5] Update fibonacci_iterative.py --- maths/fibonacci_iterative.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/maths/fibonacci_iterative.py b/maths/fibonacci_iterative.py index a23a13d1e695..41156565bf98 100644 --- a/maths/fibonacci_iterative.py +++ b/maths/fibonacci_iterative.py @@ -1,9 +1,12 @@ -def fibonacci_iterative(n: int) -> int: +def fibonacci_iterative(term_index: int) -> int: """ - Return the n-th Fibonacci number using an iterative approach. + Return the Fibonacci number at a given index using an iterative approach. - The function returns the Fibonacci number at index n where: - F(0) == 0, F(1) == 1, F(2) == 1, ... + Parameters: + term_index (int): Index in the Fibonacci sequence. Must be a non-negative integer. + + Returns: + int: The Fibonacci number at the specified index. Examples: >>> fibonacci_iterative(0) @@ -13,17 +16,18 @@ def fibonacci_iterative(n: int) -> int: >>> fibonacci_iterative(7) 13 """ - if n < 0: - raise ValueError("Input must be a non-negative integer") + if term_index < 0: + raise ValueError("term_index must be a non-negative integer.") + + if term_index <= 1: + return term_index - if n == 0: - return 0 - a, b = 0, 1 - for _ in range(1, n): - a, b = b, a + b - return b + prev, curr = 0, 1 + for _ in range(2, term_index + 1): + prev, curr = curr, prev + curr + return curr if __name__ == "__main__": - # simple demonstration print(fibonacci_iterative(7)) # expected 13 + From 59fec8a5a1efbd466259219276c22c125c406436 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 20:30:33 +0000 Subject: [PATCH 3/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/fibonacci_iterative.py | 1 - 1 file changed, 1 deletion(-) diff --git a/maths/fibonacci_iterative.py b/maths/fibonacci_iterative.py index 41156565bf98..79b38bb1cb96 100644 --- a/maths/fibonacci_iterative.py +++ b/maths/fibonacci_iterative.py @@ -30,4 +30,3 @@ def fibonacci_iterative(term_index: int) -> int: if __name__ == "__main__": print(fibonacci_iterative(7)) # expected 13 - From 6da3d09cdb77a0f5421cec660d84b3bce4158527 Mon Sep 17 00:00:00 2001 From: agarwalpranay02 Date: Wed, 29 Oct 2025 02:37:27 +0530 Subject: [PATCH 4/5] Update fibonacci_iterative.py --- maths/fibonacci_iterative.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/maths/fibonacci_iterative.py b/maths/fibonacci_iterative.py index 79b38bb1cb96..b356b773ecaf 100644 --- a/maths/fibonacci_iterative.py +++ b/maths/fibonacci_iterative.py @@ -3,7 +3,8 @@ def fibonacci_iterative(term_index: int) -> int: Return the Fibonacci number at a given index using an iterative approach. Parameters: - term_index (int): Index in the Fibonacci sequence. Must be a non-negative integer. + term_index (int): Index in the Fibonacci sequence. + Must be a non-negative integer. Returns: int: The Fibonacci number at the specified index. @@ -30,3 +31,4 @@ def fibonacci_iterative(term_index: int) -> int: if __name__ == "__main__": print(fibonacci_iterative(7)) # expected 13 + From d11a0c266173d13902412de10c3881448e51dc60 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 21:11:06 +0000 Subject: [PATCH 5/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/fibonacci_iterative.py | 1 - 1 file changed, 1 deletion(-) diff --git a/maths/fibonacci_iterative.py b/maths/fibonacci_iterative.py index b356b773ecaf..9bbd45ae5c6b 100644 --- a/maths/fibonacci_iterative.py +++ b/maths/fibonacci_iterative.py @@ -31,4 +31,3 @@ def fibonacci_iterative(term_index: int) -> int: if __name__ == "__main__": print(fibonacci_iterative(7)) # expected 13 -