Exemplo n.º 1
0
        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}");
        }
Exemplo n.º 2
0
        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]}");
        }