From df38bb1b3d19782814f569381b6db46d367a9d47 Mon Sep 17 00:00:00 2001 From: MohamedBoukthir Date: Fri, 1 Nov 2024 20:15:33 +0100 Subject: [PATCH 1/6] adding the fibonacci series to the Recursion package --- .../Recursion/FibonacciSeries.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java diff --git a/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java b/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java new file mode 100644 index 000000000000..fbdd89ed4e7d --- /dev/null +++ b/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java @@ -0,0 +1,24 @@ +package com.thealgorithms.Recursion; + +/* + The Fibonacci series is a sequence of numbers where each number is the sum of the two preceding ones, + starting with 0 and 1. + NUMBER 0 1 2 3 4 5 6 7 8 9 10 ... + FIBONACCI 0 1 1 2 3 5 8 13 21 34 55 ... +*/ + +public class FibonacciSeries { + + static int fib(int n) { + if (n == 0 || n ==1) + return n; + else + return fib(n - 1) + fib(n - 2); + } + + public static void main(String[] args) { + System.out.println("Fibonacci = " + fib(1)); // Fibonacci = 1 + System.out.println("Fibonacci = " + fib(0)); // Fibonacci = 0 + System.out.println("Fibonacci = " + fib(14)); // Fibonacci = 377 + } +} From 7b230c9a5e3a0275cb68c6e7f960c81b02017858 Mon Sep 17 00:00:00 2001 From: MohamedBoukthir Date: Sat, 2 Nov 2024 16:53:36 +0100 Subject: [PATCH 2/6] add JUint tests, remove main method, and format code --- .../Recursion/FibonacciSeries.java | 9 +------ .../Recursion/FibonacciSeriesTest.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java diff --git a/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java b/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java index fbdd89ed4e7d..a390c55e873c 100644 --- a/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java +++ b/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java @@ -8,17 +8,10 @@ */ public class FibonacciSeries { - static int fib(int n) { - if (n == 0 || n ==1) + if (n == 0 || n == 1) return n; else return fib(n - 1) + fib(n - 2); } - - public static void main(String[] args) { - System.out.println("Fibonacci = " + fib(1)); // Fibonacci = 1 - System.out.println("Fibonacci = " + fib(0)); // Fibonacci = 0 - System.out.println("Fibonacci = " + fib(14)); // Fibonacci = 377 - } } diff --git a/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java b/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java new file mode 100644 index 000000000000..b41cd60dfbaa --- /dev/null +++ b/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java @@ -0,0 +1,27 @@ +package com.thealgorithms.Recursion; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +public class FibonacciSeriesTest { + + @Test + public void testFibonacci() { + assertEquals(0, FibonacciSeries.fib(0)); + assertEquals(1, FibonacciSeries.fib(1)); + assertEquals(1, FibonacciSeries.fib(2)); + assertEquals(2, FibonacciSeries.fib(3)); + assertEquals(3, FibonacciSeries.fib(4)); + assertEquals(5, FibonacciSeries.fib(5)); + assertEquals(8, FibonacciSeries.fib(6)); + assertEquals(13, FibonacciSeries.fib(7)); + assertEquals(21, FibonacciSeries.fib(8)); + assertEquals(34, FibonacciSeries.fib(9)); + assertEquals(55, FibonacciSeries.fib(10)); + assertEquals(89, FibonacciSeries.fib(11)); + assertEquals(144, FibonacciSeries.fib(12)); + assertEquals(233, FibonacciSeries.fib(13)); + assertEquals(377, FibonacciSeries.fib(14)); + } + +} From 01b69fb76cbaeb2685b4e5c4f5d0912f5f0e0bd2 Mon Sep 17 00:00:00 2001 From: MohamedBoukthir Date: Sat, 2 Nov 2024 17:01:35 +0100 Subject: [PATCH 3/6] format code --- .../java/com/thealgorithms/Recursion/FibonacciSeriesTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java b/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java index b41cd60dfbaa..eeef3cbcd241 100644 --- a/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java +++ b/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java @@ -1,6 +1,7 @@ package com.thealgorithms.Recursion; import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.Test; public class FibonacciSeriesTest { @@ -23,5 +24,4 @@ public void testFibonacci() { assertEquals(233, FibonacciSeries.fib(13)); assertEquals(377, FibonacciSeries.fib(14)); } - } From 0f5d461d17977afd21543c80d0244279eabca87e Mon Sep 17 00:00:00 2001 From: MohamedBoukthir Date: Sat, 2 Nov 2024 17:07:19 +0100 Subject: [PATCH 4/6] Fix Checkstyle issues in FibonacciSeries.java --- .../com/thealgorithms/Recursion/FibonacciSeries.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java b/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java index a390c55e873c..133b33f38ce5 100644 --- a/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java +++ b/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java @@ -8,10 +8,14 @@ */ public class FibonacciSeries { - static int fib(int n) { - if (n == 0 || n == 1) + private FibonacciSeries() { + throw new UnsupportedOperationException("Utility class"); + } + public static int fibonacci(int n) { + if (n <= 1) { return n; - else - return fib(n - 1) + fib(n - 2); + } else { + return fibonacci(n - 1) + fibonacci(n - 2); + } } } From b6a01b0bdc79a8e218c1604e32e74fe40b057440 Mon Sep 17 00:00:00 2001 From: MohamedBoukthir Date: Sat, 2 Nov 2024 17:09:45 +0100 Subject: [PATCH 5/6] Fix Checkstyle issues in FibonacciSeries.java --- .../Recursion/FibonacciSeriesTest.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java b/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java index eeef3cbcd241..4e4fc45809ba 100644 --- a/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java +++ b/src/test/java/com/thealgorithms/Recursion/FibonacciSeriesTest.java @@ -8,20 +8,20 @@ public class FibonacciSeriesTest { @Test public void testFibonacci() { - assertEquals(0, FibonacciSeries.fib(0)); - assertEquals(1, FibonacciSeries.fib(1)); - assertEquals(1, FibonacciSeries.fib(2)); - assertEquals(2, FibonacciSeries.fib(3)); - assertEquals(3, FibonacciSeries.fib(4)); - assertEquals(5, FibonacciSeries.fib(5)); - assertEquals(8, FibonacciSeries.fib(6)); - assertEquals(13, FibonacciSeries.fib(7)); - assertEquals(21, FibonacciSeries.fib(8)); - assertEquals(34, FibonacciSeries.fib(9)); - assertEquals(55, FibonacciSeries.fib(10)); - assertEquals(89, FibonacciSeries.fib(11)); - assertEquals(144, FibonacciSeries.fib(12)); - assertEquals(233, FibonacciSeries.fib(13)); - assertEquals(377, FibonacciSeries.fib(14)); + assertEquals(0, FibonacciSeries.fibonacci(0)); + assertEquals(1, FibonacciSeries.fibonacci(1)); + assertEquals(1, FibonacciSeries.fibonacci(2)); + assertEquals(2, FibonacciSeries.fibonacci(3)); + assertEquals(3, FibonacciSeries.fibonacci(4)); + assertEquals(5, FibonacciSeries.fibonacci(5)); + assertEquals(8, FibonacciSeries.fibonacci(6)); + assertEquals(13, FibonacciSeries.fibonacci(7)); + assertEquals(21, FibonacciSeries.fibonacci(8)); + assertEquals(34, FibonacciSeries.fibonacci(9)); + assertEquals(55, FibonacciSeries.fibonacci(10)); + assertEquals(89, FibonacciSeries.fibonacci(11)); + assertEquals(144, FibonacciSeries.fibonacci(12)); + assertEquals(233, FibonacciSeries.fibonacci(13)); + assertEquals(377, FibonacciSeries.fibonacci(14)); } } From 123f68305699c140629768404c409698b890de98 Mon Sep 17 00:00:00 2001 From: MohamedBoukthir Date: Sat, 2 Nov 2024 20:38:37 +0100 Subject: [PATCH 6/6] Declare FibonacciSeries class as final --- src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java b/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java index 133b33f38ce5..a89d110b8da3 100644 --- a/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java +++ b/src/main/java/com/thealgorithms/Recursion/FibonacciSeries.java @@ -7,7 +7,7 @@ FIBONACCI 0 1 1 2 3 5 8 13 21 34 55 ... */ -public class FibonacciSeries { +public final class FibonacciSeries { private FibonacciSeries() { throw new UnsupportedOperationException("Utility class"); }