Skip to content

Commit 6424227

Browse files
author
programmiri
committed
Refactored solution Collatz Conjecture
1 parent 741da8d commit 6424227

File tree

1 file changed

+3
-20
lines changed

1 file changed

+3
-20
lines changed
Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,11 @@
1-
function divideByTwo(num) {
2-
return num / 2;
3-
}
4-
5-
function multiplyByThreeAddOne(num) {
6-
return num * 3 + 1;
7-
}
8-
91
function steps(number) {
102
if (number <= 0) {
113
throw new Error('Only positive numbers are allowed');
124
}
135

14-
let currNumber = number;
15-
let count = 0;
16-
while (currNumber !== 1) {
17-
if (currNumber % 2 === 0) {
18-
currNumber = divideByTwo(currNumber);
19-
} else {
20-
currNumber = multiplyByThreeAddOne(currNumber);
21-
}
22-
23-
count++;
24-
}
25-
return count;
6+
if (number === 1) return 0;
7+
if (number % 2 === 0) return 1 + steps(number / 2);
8+
return 1 + steps(number * 3 + 1);
269
}
2710

2811
export { steps };

0 commit comments

Comments
 (0)