Skip to content

Commit a807c36

Browse files
authored
feat: added digital root algorithm and its recursive implementation
1 parent 6d1849a commit a807c36

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

Maths/DigitalRoot.js

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
export const digitalRoot = (num) => {
22
/**
3-
* Calculates the digital root of a number in constant time.
4-
* @param {number} num - The number to compute the digital root for.
5-
* @returns {number} The digital root of the given number.
6-
*
7-
* @example
8-
* digitalRoot(456) // returns 6
9-
* digitalRoot(-999) // returns 9
10-
* digitalRoot(0) // returns 0
11-
*/
3+
* Calculates the digital root of a number in constant time.
4+
* @param {number} num - The number to compute the digital root for.
5+
* @returns {number} The digital root of the given number.
6+
*
7+
* @example
8+
* digitalRoot(456) // returns 6
9+
* digitalRoot(-999) // returns 9
10+
* digitalRoot(0) // returns 0
11+
*/
1212
if (num < 0) num = -num;
1313
return num === 0 ? num : 1 + ((num - 1) % 9);
1414
};
1515
/*------------------------------------------------------------------------------------*/
1616

1717
export const digitalRootRecursive = (num) => {
1818
/**
19-
* Calculates the digital root of a number using recursion.
20-
* @param {number} num - The number to compute the digital root for.
21-
* @returns {number} The digital root of the given number.
22-
*
23-
* @example
24-
* digitalRoot(456) // returns 6
25-
* digitalRoot(999) // returns 9
26-
* digitalRoot(0) // returns 0
27-
*/
19+
* Calculates the digital root of a number using recursion.
20+
* @param {number} num - The number to compute the digital root for.
21+
* @returns {number} The digital root of the given number.
22+
*
23+
* @example
24+
* digitalRoot(456) // returns 6
25+
* digitalRoot(999) // returns 9
26+
* digitalRoot(0) // returns 0
27+
*/
2828
if (num < 0) num = -num; // Handle negative input by converting to positive
2929
if (num < 10) return num; // Base case for single-digit number
3030

0 commit comments

Comments
 (0)