1
- export const digitalRoot = ( num ) => {
1
+ const digitalRoot = ( num ) => {
2
2
/**
3
3
* Calculates the digital root of a number in constant time.
4
4
* @param {number } num - The number to compute the digital root for.
5
5
* @returns {number } The digital root of the given number.
6
6
*
7
- * @example
8
- * digitalRoot(456) // returns 6
9
- * digitalRoot(-999) // returns 9
10
- * digitalRoot(0) // returns 0
7
+ * @example digitalRoot(456) // returns 6
8
+ * @example digitalRoot(-999) // returns 9
9
+ * @example digitalRoot(0) // returns 0
11
10
*/
12
11
if ( num < 0 ) num = - num ;
13
12
return num === 0 ? num : 1 + ( ( num - 1 ) % 9 ) ;
14
13
} ;
15
14
/*------------------------------------------------------------------------------------*/
16
15
17
- export const digitalRootRecursive = ( num ) => {
16
+ const digitalRootRecursive = ( num ) => {
18
17
/**
19
18
* Calculates the digital root of a number using recursion.
20
19
* @param {number } num - The number to compute the digital root for.
21
20
* @returns {number } The digital root of the given number.
22
21
*
23
- * @example
24
- * digitalRoot(456) // returns 6
25
- * digitalRoot(999) // returns 9
26
- * digitalRoot(0) // returns 0
22
+ * @example digitalRootRecursive(456) // returns 6
23
+ * @example digitalRootrecursive(999) // returns 9
24
+ * @example digitalRootRecursive(0) // returns 0
27
25
*/
28
26
if ( num < 0 ) num = - num ; // Handle negative input by converting to positive
29
27
if ( num < 10 ) return num ; // Base case for single-digit number
@@ -32,3 +30,8 @@ export const digitalRootRecursive = (num) => {
32
30
const sum = ( num % 10 ) + digitalRootRecursive ( Math . floor ( num / 10 ) ) ;
33
31
return digitalRootRecursive ( sum ) ; // Call digitalRoot recursively to reduce to single digit
34
32
} ;
33
+
34
+ export {
35
+ digitalRoot ,
36
+ digitalRootRecursive
37
+ }
0 commit comments