Задана квадратная матрица неизвестного размера. Получить сумму элементов, находящихся на половинах диагоналей, расположенных справа от центра

подскажите, пожалуйста, где ошибка, и помогите решить эту задачу

-module(matrix).
-export([sum_diag/1]).

sum_diag(Matrix) ->
    N = length(Matrix) - 1,
    FirstHalfSum = sum_first_half(Matrix, N, 0, N div 2),
    SecondHalfSum = sum_second_half(Matrix, N, 0, N div 2 + 1),
    {FirstHalfSum, SecondHalfSum, FirstHalfSum + SecondHalfSum}.

sum_first_half(_, -1, Acc, _) -> Acc;
sum_first_half(Matrix, I, Acc, HalfSize) when I >= HalfSize ->
    Element = lists:nth(I+1, lists:nth(I+1, Matrix)),
    sum_first_half(Matrix, I-1, Acc + Element, HalfSize);
sum_first_half(Matrix, I, Acc, HalfSize) ->
    sum_first_half(Matrix, I-1, Acc, HalfSize).

sum_second_half(_, -1, Acc, _) -> Acc;
sum_second_half(Matrix, I, Acc, HalfSize) when I < HalfSize ->
    Element = lists:nth(I+1, lists:nth(I+1, Matrix)),
    sum_second_half(Matrix, I-1, Acc + Element, HalfSize);
sum_second_half(Matrix, I, Acc, HalfSize) ->
    sum_second_half(Matrix, I-1, Acc, HalfSize).

Ответы (0 шт):