👤

Se citeste de la tastatura o matrice cu n linii si m coloane (cel mult 100 de linii si de coloane) formata din elemente numere naturale, fiecare element avand cel mult 6 cifre. Sa se numere cate elemente din matrice au proprietatea ca au toti vecinii pari. Se vor lua in considerare vecinii de pe linie si de pe coloana.

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int a[100][100], n, m, raspuns=0;

   cin>>n>>m;

   for(int i=1;i<=n;i++)

       for(int j=1;j<=m;j++)

           cin>>a[i][j];

   for(int i=1;i<=n;i++)

       for(int j=1;j<=m;j++)

       {

           if(a[i][j+1]%10%2==0 && a[i][j-1]%10%2==0 && a[i-1][j]%10%2==0 && a[i+1][j]%10%2==0)

                   raspuns++;

       }

   cout<<raspuns;

}

Explicație:

Numarul a[ i ] [ j ] are următorii vecini:

Deasupra: a[ i  - 1 ] [ j ]

Dedesubt: a[ i + 1 ] [ j ]

În stânga: a[ i ] [ j - 1 ]

În dreapta: a[ i ] [ j + 1 ]

În cerință se precizează că un element poate avea 6 cifre.

Conform principiului matematic: Orice număr ce are ultima cifră pară, la rândul său, numărul, este un număr par.

Așadar, dacă ultima cifră a tuturor vecinilor este pară înseamnă că proprietatea se respectă, prin urmare numărăm fiecare element al cărui vecini sunt la fel.

Î: Cum afli care este ultima cifră?

R: Ultima cifră a oricărui număr o poți afla astfel:

Considerăm numărul x. Ultima sa cifră este: x%10

Î: Cum verificăm dacă este număr par?

R: Considerăm numărul x. Verificarea se face astfel: x%2

Î: Ce se întâmplă dacă nu are vecin în vreo direcție?

R: Nimic. Acea zonă va fi considerată ca fiind adevărată în condiționarea if