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:

https://i.ibb.co/RcWyq8z/image.png

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

Autentifică-te pentru a putea comenta.

Autentifică-te