-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0504-base-7.js
More file actions
35 lines (29 loc) · 740 Bytes
/
0504-base-7.js
File metadata and controls
35 lines (29 loc) · 740 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
* Base 7
* Time Complexity: O(log|num|)
* Space Complexity: O(log|num|)
*/
var convertToBase7 = function (num) {
if (num === 0) {
return "0";
}
let isNegativeValue = false;
let absoluteNumber = num;
if (num < 0) {
isNegativeValue = true;
absoluteNumber = -num;
}
let base7Digits = [];
let currentNumber = absoluteNumber;
while (currentNumber > 0) {
let digitRemainder = currentNumber % 7;
base7Digits.push(digitRemainder);
currentNumber = Math.floor(currentNumber / 7);
}
let resultString = base7Digits.reverse().join('');
if (isNegativeValue) {
return "-" + resultString;
} else {
return resultString;
}
};