Вывести квадрат, состоящий из NxN клеток, заполненных числами от 1 до N^2 по спирали - C#

Узнай цену своей работы

Формулировка задачи:

Вывести квадрат, состоящий из NxN клеток, заполненных числами от 1 до N2 по спирали (см. примеры).

Ввод

В первой строке находится единственное число N.

Вывод

Выводится N строк по N чисел, разделённых пробелами. Не допускается начинать спираль в ином, кроме верхнего левого, углу, закручивать спираль против часовой стрелки или изнутри наружу.

Ограничения

2 < N < 100.

Решение задачи: «Вывести квадрат, состоящий из NxN клеток, заполненных числами от 1 до N^2 по спирали»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace govnische
{
    class Program
    {
        static void Main(string[] args)
        {
            byte s = byte.Parse(Console.ReadLine());
            int[,] masviv = new int[s, s];
            for (int i = 0; i < s; i++)
            {
                for (int j = 0; j < s; j++)
                {
                    masviv[i, j] = 0;
                }
            }
            masviv[0,0] = 1;
            int maswir = s - 1,  maswirrrr = 0;
            while(maswir>=maswirrrr)
            {
            for (int i = maswirrrr, j = maswirrrr; j <= maswir; j++)
            {
                {
                    if (j!=0)
                    masviv[i, j] = masviv[i, j-1] + 1;
                }
            }
            for (int i = maswirrrr, j = maswir; i <= maswir; i++)
            {
                {
                    if (i != maswirrrr)
                        masviv[i, j] = masviv[i-1, j] + 1;
                }
            }
            for (int i = maswir, j = maswir; j >= maswirrrr; j--)
            {
                {
                    if (j != maswir)
                        masviv[i, j] = masviv[i, j + 1] + 1;
                }
            }
            for (int i = maswir, j = maswirrrr; i > maswirrrr;i--)
            {
                if (i != maswir)
                    masviv[i, j] = masviv[i + 1, j] + 1;
            }
            maswir -= 1;
            maswirrrr += 1;
        }
                for (int i = 0; i < s; i++)
                {
                    for (int j = 0; j < s; j++)
                    {
                        Console.Write(masviv[i, j] + " ");
                    }
                    Console.WriteLine();
                }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы