Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class PrintMatrixSizeNFour
- {
- static int N = 0;
- static void Main()
- {
- N = int.Parse(Console.ReadLine());
- int[,] matrix = new int[N, N];
- int loops = 0;
- int numberOfOperations = (N - 1) * 2 + 1;
- while (loops <= numberOfOperations)
- {
- PrintMatrix(FirstSide(matrix, num));
- loops++;
- if (loops == numberOfOperations)
- {
- break;
- }
- PrintMatrix(SecondSide(matrix, num));
- loops++;
- if (loops == numberOfOperations)
- {
- break;
- }
- PrintMatrix(ThirdSide(matrix, num));
- loops++;
- if (loops == numberOfOperations)
- {
- break;
- }
- PrintMatrix(FourthSide(matrix, num));
- loops++;
- }
- }
- static int firstSideModifi = 0;
- static int num = 1;
- static int secondSideModifi = 0;
- static int thirdSideModifi = 0;
- static int fourthSideModifi = 0;
- static List<List<int>> matrix = new List<List<int>>();
- static int[,] FirstSide(int[,] matrix, int num)
- {
- for (int p = firstSideModifi; p <= firstSideModifi; p++)
- {
- for (int i = firstSideModifi; i < matrix.GetLength(0) - firstSideModifi; i++)
- {
- matrix[i, p] = num;
- num++;
- }
- }
- firstSideModifi++;
- return matrix;
- }
- static int[,] SecondSide(int[,] matrix, int num)
- {
- for (int i = (N - 1) - secondSideModifi; i <= (N - 1) - secondSideModifi; i++)
- {
- for (int p = 1 + secondSideModifi; p < N - secondSideModifi; p++)
- {
- matrix[i, p] = num;
- num++;
- }
- }
- secondSideModifi++;
- return matrix;
- }
- static int[,] ThirdSide(int[,] matrix, int num)
- {
- for (int p = (N - 1) - thirdSideModifi; p <= (N - 1) - thirdSideModifi; p++)
- {
- for (int i = (N - 2) - thirdSideModifi; i >= thirdSideModifi; i--)
- {
- matrix[i, p] = num;
- num++;
- }
- }
- thirdSideModifi++;
- return matrix;
- }
- static int[,] FourthSide(int[,] matrix, int num)
- {
- for (int i = 0 + fourthSideModifi; i <= fourthSideModifi; i++)
- {
- for (int p = (N - 2) - fourthSideModifi; p >= 1 + fourthSideModifi; p--)
- {
- matrix[i, p] = num;
- num++;
- }
- }
- fourthSideModifi++;
- return matrix;
- }
- static int[,] PrintMatrix(int[,] matrix)
- {
- for (int i = 0; i < matrix.GetLength(0); i++)
- {
- for (int p = 0; p < matrix.GetLength(1); p++)
- {
- Console.Write("{0, 6} ", matrix[i, p]);
- }
- Console.WriteLine();
- }
- return matrix;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement