нам нужно найти абсолютную разницу между суммой 2 диагоналей. Пожалуйста, вы можете сказать мне, где я иду не так - PullRequest
0 голосов
/ 27 октября 2019

Выведите абсолютную разницу между суммами двух диагоналей матрицы в виде одного целого числа.

diagonalDifference (arr): sum1 = 0 sum2 = 0

for i in range(len(arr)):
    for j in range(len(arr)):
        if (i==j):
            sum1=sum1+arr[i][j]

        if (((i+j)-1)==(len(arr))):
            sum2=sum2+arr[i][j]
return abs(sum1-sum2)
P.s:

1 Ответ

0 голосов
/ 27 октября 2019

ваш код близок, у вас просто второй оператор if испортился, на самом деле он должен выглядеть так:

for i in range(len(arr)):
    for j in range(len(arr)):
        if i==j:
            sum1 += arr[i][j]
        if i+j == len(arr)-1:
            sum2 += arr[i][j]

пример:

arr = [[1,2,3],[4,5,6],[7,8,9]]
sum1 #15
sum2 #15
abs(sum1-sum2) #0

длина массиваравно 3 ..... для второй диагонали, первое значение при i = 2, j = 0, поэтому i + j = 2, что равно 3-1, второе значение при i = 1, j = 1, поэтому я+ j = 2, что составляет 3-1 ... и т. д.

...