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ăspunsuri la întrebare
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
Multumesc boiustef pt sesizare!