public static void FirstSolution(int target, int size) { int[,] grid = new int[size, size]; SpiralMover mover = new SpiralMover(grid); for (int i = 1; i < target; i++) { grid[mover.Current.Row, mover.Current.Col] = i; mover.Next(); } int distance = CalcDistance(mover.Start, mover.Current); Console.WriteLine($"Target Distance: {distance}"); }
public static void SecondSolution(int target, int size) { int[,] grid = new int[size, size]; SpiralMover mover = new SpiralMover(grid); grid[mover.Current.Row, mover.Current.Col] = 1; while (true) { if (grid[mover.Current.Row, mover.Current.Col] > target) { break; } mover.Next(); grid[mover.Current.Row, mover.Current.Col] = Sum(mover.Current, grid); } Console.WriteLine($"Result: {grid[mover.Current.Row, mover.Current.Col]}"); }