A Collatz sequence is the sequence where, for a given number n, the next number in the sequence is either n/2 if the number is even or 3n+1 if the number is odd. The sequence always terminates with 1.
So if
n = 13
then
c = [13 40 20 10 5 16 8 4 2 1]
Solution Stats
Problem Comments
6 Comments
Solution Comments
Show comments
Loading...
Problem Recent Solvers8484
Suggested Problems
-
16148 Solvers
-
23625 Solvers
-
16287 Solvers
-
Generate a vector like 1,2,2,3,3,3,4,4,4,4
13590 Solvers
-
529 Solvers
More from this Author96
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
Hep, Cody Team, could you remove my solution please?
Thank you!
nice one but consumes size dunno how to reduce it
a bit tricky but nice
I like this problem, because I learnt about the Collatz sequence story. Very interessting.
function c = collatz(n)
c(1) = n;
while (1>0)
if (n == 1)
c(end+1) = n;
break
elseif (mod(n,2) == 0)
c(end+1) = n;
n = n/2;
collatz(n);
else
c(end+1) = n;
n = 3*n + 1;
collatz(n);
end
end
c(1) = [];
end
This solution is correct as I ran the Test Cases myself. But the compiler timed out. What should I do ?