сумма диагональных элементов спиральной матрицы - PullRequest
0 голосов
/ 02 апреля 2019

Пусть n = 5, тогда для матрицы

1  2  3  4  5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8 
13 12 11 10 9

тогда сумма диагональных элементов:

=1+17+25+21+9+5+19+23+13

Сумма для n = 15?

Одним из способов является создание спиральной матрицы, а затем по петле мы получаем ответ, но его сложность во времени и пространстве велика.

Как это https://www.geeksforgeeks.org/sum-diagonals-spiral-odd-order-square-matrix/ но проблема здесь начинается 1 от центра.

1 Ответ

1 голос
/ 02 апреля 2019

Рассмотрим внешнюю «оболочку» матрицы.Сумма значений в четырех вершинах, учитывая размер n (5 в вашем примере) и начальное значение s (1 в вашем примере) составляет

s + (s + (n-1)) + (s + (n-1) * 2) + (s + (n-1) * 3) = 4 * s + (n-1) * 6

То же самое относится к внутренним значениям после обновления n и s :

s = s + 4 * (n - 1)
n = n - 2

Если n становится меньше 2, ну, либо у нас есть центральный элемент, либо ничего ( n четное).

...