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 Solvers8489
Suggested Problems
-
"Low : High - Low : High - Turn around " -- Create a subindices vector
583 Solvers
-
ベクトル [1 2 3 4 5 6 7 8 9 10] の作成
599 Solvers
-
2017 Solvers
-
String Array Basics, Part 1: Convert Cell Array to String Array; No Missing Values
1965 Solvers
-
11181 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 ?