👤

Indicați expresia C/C++ care are valoarea 1 dacă şi numai dacă numărul natural memorat în variabila întreagă n este divizibil cu 2, dar NU şi cu 5.


Varianta 1
(n%10==0) && (n%2==0)

Varianta 2
(n%2==0) && (n%5==0)

Varianta 3
(n%10==0) || (n%5!=0)

Varianta 4
!((n%2==1) || (n%5==0))

raspuns corect v4 dar spuneti de ce n%2!=1 este divizibil cu 2?????


Răspuns :

Răspuns:

Varianta 4

Explicație:

Varianta 1: (n%10==0) && (n%2==0) = (n%5==0&&n%2==0) && (n%2==0). E gresit deoarece spune sa nu fie divizibil cu 5

Varianta 2: (n%2==0) && (n%5==0) = (n%10==0) deci aceasi problema ca la varianta 1

Varianta 3: (n%10==0)||(n%5!=0) = (n%2==0&&n%5==0)||(n%5!=0). Prima paranteza e echivalenta cu cea de la varianta 2, deci aceasi problema(avem || deci rezultatul expresiei (n%5!=0) este ignorat daca rezultatul primei paranteze este adevarat).

Varianta 4: !((n%2==1)||(n%5==0)) = !(n%2==1) && !(n%5==0) = (n%2==0) && (n%5!=0). Aceasta este varianta corecta

"spuneti de ce n%2!=1 este divizibil cu 2?????"

n%2 poate avea doar 2 valori, 0 si 1.

n%2 == 0 este echivalent cu !(!(n%2==0)), cu !(n%2!=0), cu !(n%2==1) si cu (n%2!=1)