using System.Collections.Generic;
public static void Main()
var a = new int[] {123456, 5, 654321, 1234567890};
Console.WriteLine($"Reversed = {Reverse(n)}");
private static int Reverse(int input) {
var stack = BuildStack(input);
return ConvertStackToNumber(stack);
private static Stack<int> BuildStack(int input) {
var stack = new Stack<int>();
var modBy = (int) Math.Pow(10, power);
var divisior = (int) Math.Pow(10, power - 1);
var remainder = (input % modBy) / divisior;
if (remainder == 0 && power != 1) break;
private static int ConvertStackToNumber(Stack<int> stack) {
while (stack.Count > 0) {
var current = stack.Pop();
total += current * (int)Math.Pow(10, power++);