Repository: TheAlgorithms/Java
Pull request #3906 (2023-03-01 11:53:05)

Fixes (#3379)
<!-- For completed items, change [ ] to [x] -->

- [x] I have read [CONTRIBUTING.md](https://github.com/TheAlgorithms/Java/blob/master/CONTRIBUTING.md).
- [x] This pull request is all my own work -- I have not plagiarized it.
- [x] All filenames are in PascalCase.
- [x] All functions and variable names follow Java naming conventions.
- [x] All new algorithms have a URL in their comments that points to Wikipedia or other similar explanations.



Patch:
diff --git a/src/main/java/com/thealgorithms/maths/FrizzyNumber.java b/src/main/java/com/thealgorithms/maths/FrizzyNumber.java
new file mode 100644
index 00000000..48d4fb3b
--- /dev/null
+++ b/src/main/java/com/thealgorithms/maths/FrizzyNumber.java
@@ -0,0 +1,33 @@
+/** Author : Siddhant Swarup Mallick
+ * Github : https://github.com/siddhant2002
+ */
+
+/** Program description - To find the FrizzyNumber*/
+
+
+package com.thealgorithms.maths;
+
+public class FrizzyNumber {
+
+    /**
+     * Returns the n-th number that is a sum of powers
+     * of the given base.
+     * Example: base = 3 and n = 4
+     * Ascending order of sums of powers of 3 =
+     * 3^0 = 1, 3^1 = 3, 3^1 + 3^0 = 4, 3^2 + 3^0 = 9
+     * Ans = 9
+     * 
+     * @param base The base whose n-th sum of powers is required
+     * @param n    Index from ascending order of sum of powers of base
+     * @return n-th sum of powers of base
+     */
+    public static double getNthFrizzy(int base, int n) {
+        double final1 = 0.0;
+        int i = 0;
+        do
+        {
+            final1 += Math.pow(base, i++) * (n % 2);
+        } while ((n /= 2) > 0);
+        return final1;
+    }
+}


Test patch:
diff --git a/src/test/java/com/thealgorithms/maths/FrizzyNumberTest.java b/src/test/java/com/thealgorithms/maths/FrizzyNumberTest.java
new file mode 100644
index 00000000..1a8501ea
--- /dev/null
+++ b/src/test/java/com/thealgorithms/maths/FrizzyNumberTest.java
@@ -0,0 +1,48 @@
+package com.thealgorithms.maths;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.Test;
+public class FrizzyNumberTest {
+    @Test
+    public void testFrizziesForBase2() {
+        assertEquals(
+                1,
+                FrizzyNumber.getNthFrizzy(2, 1));
+        assertEquals(
+                3,
+                FrizzyNumber.getNthFrizzy(2, 3));
+        assertEquals(
+                1000,
+                FrizzyNumber.getNthFrizzy(2, 1000));
+    }
+
+    @Test
+    public void testFrizziesForBase3() {
+        assertEquals(
+                1,
+                FrizzyNumber.getNthFrizzy(3, 1));
+        assertEquals(
+                3,
+                FrizzyNumber.getNthFrizzy(3, 2));
+        assertEquals(
+                29430,
+                FrizzyNumber.getNthFrizzy(3, 1000));
+    }
+
+    @Test
+    public void testFrizziesForBase69() {
+        assertEquals(
+                1,
+                FrizzyNumber.getNthFrizzy(69, 1));
+        assertEquals(
+                69,
+                FrizzyNumber.getNthFrizzy(69, 2));
+        assertEquals(
+                328510,
+                FrizzyNumber.getNthFrizzy(69, 9));
+        assertEquals(
+                333340,
+                FrizzyNumber.getNthFrizzy(69, 15));
+    }
+}