How to calculate the Collatz sequence starting with 13 in C#

1 Answer

0 votes
using System;

public class Program {
	// Collatz Sequence Example:
	// 13 - 40 - 20 - 10 - 5 - 16 - 8 - 4 - 2 - 1

	private static long CalcCollatz(long x) {
		// if (number is odd) return x*3 + 1
		// if (number is even) return x/2 
		if ((x & 1) != 0) { // odd
			return x * 3 + 1;
		}
		return x / 2; // even
	}

	private static void PrintCollatzSequence(long x) {
		Console.Write(x + " ");

		while (x != 1) {
			x = CalcCollatz(x);
			Console.Write(x + " ");
		}
	}

	public static void Main(string[] args)
	{
		long x = 13;

		PrintCollatzSequence(x);
	}
}





/*
run:
     
13 40 20 10 5 16 8 4 2 1 
  
*/

 



answered Nov 7, 2023 by avibootz

Related questions

1 answer 133 views
1 answer 176 views
1 answer 129 views
1 answer 139 views
1 answer 160 views
...