Verifică dacă un număr este par sau impar fără modulo în C++
Dându-se un număr natural n
, să se determine dacă este par sau impar, fără a
folosi operatorul %
(modulo).
Exemplu. Pentru n = 11
, răspunsul este IMPAR
.
Explicarea metodei
Această metodă de rezolvare se folosește de operatorii pe biți. Ultimul
bit al unui număr este 1
, dacă n
este impar, respectiv 0
în caz contrar
(acest lucru se demonstrează ușor: toate celelalte puteri de 2
din
reprezentarea binară sunt numere pare, mai puțin cel de pe poziția 0
, care
este 1
— astfel, dacă ultimul bit al numărului este 1
, atunci numărul este
impar, respectiv par în caz contrar).
Așadar, trebuie doar să aflăm valoarea ultimului bit al lui n
. Acest lucru
se poate face cu operatorul AND
, între numărul n
și 1
. Aplicând această
operație, vom obține un număr care elimină toți ceilalți biți din n
, înafară
de primul bit. Astfel, dacă numărul este 1
, atunci n
este impar, respectiv
par în caz contrar:
Implementare C++
Iată codul folosind regulile menționate mai sus:
#include <iostream>
using namespace std;
int main()
{
//Declarăm și citim numărul n
int n;
cin >> n;
//Verificăm paritatea lui n
if(n & 1) {
cout << "IMPAR";
} else {
cout << "PAR";
}
return 0;
}
Alte resurse și bibliografie
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0