Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- /* Write a program that reads from the console a positive integer number n (1 ≤ n ≤ 20)
- * and prints a matrix holding the numbers from 1 to n*n in the form of square spiral
- * like in the examples below. Examples:
- * n matrix
- * 4 1 2 3 4
- * 12 13 14 5
- * 11 16 15 6
- * 10 9 8 7 */
- class SpiralMatrix
- {
- static void Main()
- {
- Console.WriteLine("Enter the side width of the matrix n (n between 1 and 20):");
- int number = 0;
- do
- {
- if (int.TryParse(Console.ReadLine(), out number) && (number >= 1) && (number <= 20))
- {
- break;
- }
- else
- {
- Console.WriteLine("You have entered an invalid data! Try again!");
- }
- } while (true);
- int maxValue = number * number;
- int[,] matrix = new int[number, number];
- int row = 0;
- int column = 0;
- int counter = 1;
- int side = number;
- Console.Clear();
- Console.WriteLine("n matrix");
- Console.WriteLine("{0}\t",number);
- while (counter <= maxValue)
- {
- //loop for adding in matrix uper horisontal row
- for (int i = 0; i < side; i++)
- {
- matrix[row, column] = counter;
- counter++;
- column++;
- }
- //setting the position of the nex number
- row++;
- side--; //sets the length of side
- column--;
- //loop for adding in matrix right vertical row
- for (int i = 0; i < side; i++)
- {
- matrix[row, column] = counter;
- counter++;
- row++;
- }
- //setting the position of the nex number
- column--;
- row--;
- //loop for adding in matrix lower horisontal row
- for (int i = 0; i < side; i++)
- {
- matrix[row, column] = counter;
- counter++;
- column--;
- }
- //setting the position of the nex number
- row--;
- column++;
- side--;//sets the length of side
- //loop for adding in matrix left vertical row
- for (int i = 0; i < side; i++)
- {
- matrix[row, column] = counter;
- counter++;
- row--;
- }
- //setting the position of the nex number
- column++;
- row++;
- }
- //printing the matrix
- for (int i = 0; i < number; i++)
- {
- for (int j = 0; j < number; j++)
- {
- Console.Write("{0,4}",matrix[i,j]);
- }
- Console.WriteLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement