public static void Main()
int[] towers = new int[] { 4, 2, 0, 0 , 2, 0 };
Console.WriteLine("The towers look like " + String.Join(", ", towers));
Console.WriteLine("Is hoppable? " + IsHoppable(towers));
towers = new int[] { 1, 0 };
Console.WriteLine("The towers look like " + String.Join(", ", towers));
Console.WriteLine("Is hoppable? " + IsHoppable(towers));
private static bool IsHoppable(int[] towers, int fromIndex = 0)
if (fromIndex >= towers.Length)
int availableSteps = towers[fromIndex];
for (int i = 1; i <= availableSteps; i++)
if (IsHoppable(towers, fromIndex + i))