Răspuns :
Se parcurge matricea pe diagonala principala si secundara.
Observam ca indici elementelor de pe diagonala principala sunt egalii deci
i = j
Pe diagonala secundara indici au modelul i + j = n + 1 sau
j = n - i + 1
Mai e un un caz special cand n este impar iar cele 2 diagonale se intalnesc intr-un "mijloc" si o sa fie numarat de 2 ori numarul daca este 0.
#include <iostream>
using namespace std;
int main()
{
int n, i, j, k = 0;
cin >> n;
int mat[n+1][n+1];
for ( i = 1 ; i <= n ; ++i )
for ( j = 1 ; j <= n ; ++j )
cin >> mat[i][j];
for ( i = 1 ; i<= n ; ++i )
if ( mat[i][i] == 0)
++k;
for ( i = 1 ; i <= n ; ++i )
if ( mat[i][n - i + 1] == 0)
++k;
if ( n % 2 == 1 )
k--;
cout << k;
return 0;
}
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Pe curând și nu uitați să ne adăugați la favorite!