Спираль C++

Числа от 1 до n2 записали в квадратную матрицу n x n по спирали начиная из верхней левой клеточки по часовой стрелке, как показано на рисунке. Найти число, которое находится в i-й строке и j-м столбце.

Входные данные

Три натуральных числа nij (1 ≤ ij ≤ n ≤ 100).

Выходные данные

Вывести число, которое имеет координаты ij.

 

#include <iostream>
using namespace std;
int main()
{
    int way = 0, x = 0, y = -1, d[100][100], n, A, B;
    cin >> n >> A >> B;
    for (int i = 0; i < 100; i++)
        for (int j = 0; j < 100; j++) d[i][j] = 0;
    for (int i = 1; i <= n*n; i++)
    {
        switch (way)
        {
        case 0:
            y++;
            if (y == n - 1 || d[x][y + 1]) way++;
            break;
        case 1:
            x++;
            if (x == n - 1 || d[x + 1][y]) way++;
            break;
        case 2:
            y--;
            if (y == 0 || d[x][y - 1]) way++;
            break;
        case 3:
            x--;
            if (x == 0 || d[x - 1][y]) way++;
            break;
        }
        d[x][y] = i;
        way %= 4;
    }
    cout << d[A - 1][B - 1] << endl;
}

Назад

Повышение продаж с помощью веб-форм Разложение числа на простые множители Как качественный контент способствует продвижению сайта Как выбрать хостинг Как писать SEO-тексты? Что такое SEO оптимизация сайта


Хостинг

Есть решение которого нет на сайте? Пиши admin@devexe.top