The Collatz Conjecture or 3x+1 problem can be summarized as follows:
Take any positive integer n. If n is even, divide n by 2 to get n / 2. If n is odd, multiply n by 3 and add 1 to get 3n + 1. Repeat the process indefinitely. The conjecture states that no matter which number you start with, you will always reach 1 eventually.
Given a number n, return the number of steps required to reach 1.
Starting with n = 12, the steps would be as follows:
Resulting in 9 steps. So for input n = 12, the return value would be 9.
If n
is not a positive integer, stop the program from being executed further and return an error message.
In JavaScript, this can be done using the throw
statement.
throw new Error('Only positive numbers are allowed');
Sign up to Exercism to learn and master JavaScript with 33 concepts, 149 exercises, and real human mentoring, all for free.