Collatz Conjecture
Easy
14
87.3% Acceptance
In this lab, you will implement a method in Java named countSteps
, which will calculate the number of steps needed to reach 1 from a given starting number using the Collatz Conjecture. Your implementation will be tested against a series of challenges to ensure accuracy and efficiency.
The Collatz Conjecture
The Collatz Conjecture is a mathematical algorithm that involves a sequence of operations on positive integers. For any given number n
, the sequence is as follows:
- If
n
is even, divide it by 2. - If
n
is odd, multiply it by 3 and add 1. - Continue this process until
n
becomes 1.
Task
Your task is to write a public static method countSteps
in a class named Main
. This method should:
- Take an integer
n
as an input. - Return the number of steps it takes to reduce
n
to 1 by following the rules of the Collatz Conjecture.
Requirements
- The method should be named
countSteps
and must be static. - It should take a single integer parameter and return an integer.
- Ensure your method handles a range of inputs efficiently and accurately.
- Remember, the method should return the number of steps, not print them.
Example
If the input to countSteps
is 6
, the method should return 8
, as it takes 8 steps to reduce 6 to 1 following the Collatz Conjecture.
Challenges Information
Challenge 1: Testing with the Number 7
- Objective: Implement the
countSteps
method in theMain
class to correctly execute the Collatz conjecture starting from the number 7. - Expected Output: The method should return
16
, indicating 16 steps to reduce 7 to 1 following the Collatz conjecture rules.
Challenge 2: Testing with the Number 6
- Objective: Write the
countSteps
method in theMain
class to process the number 6 according to the Collatz conjecture. - Expected Output: The method must return
8
, denoting 8 steps required to reach 1 from 6.
Challenge 3: Testing with the Number 16
- Objective: Ensure the
countSteps
method in theMain
class correctly processes the number 16 under the Collatz conjecture. - Expected Output: The correct output is
4
, showing that 4 steps are needed to go from 16 to 1.
Challenge 4: Testing with the Number 1
- Objective: Test the
countSteps
method in theMain
class with the number 1, the endpoint of the Collatz conjecture. - Expected Output: As 1 is already the target, the method should return
0
, indicating no steps are needed.