We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 741da8d commit 6424227Copy full SHA for 6424227
collatz-conjecture/collatz-conjecture.js
@@ -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
9
function steps(number) {
10
if (number <= 0) {
11
throw new Error('Only positive numbers are allowed');
12
}
13
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;
+ if (number === 1) return 0;
+ if (number % 2 === 0) return 1 + steps(number / 2);
+ return 1 + steps(number * 3 + 1);
26
27
28
export { steps };
0 commit comments