Contact și feedback

Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.


Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.


Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

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

Cuprinsul lecției

Se încarcă…

Citește și

Cifra maximă a unui număr recursiv în C++Inversarea unui șir de caractere în C++Ridicarea la putere în timp logaritmic în C++. Exponențiere rapidăCel mai mare divizor comun (CMMDC) a două numere în C++Cel mai puțin semnificativ bit în C++Suma 1 + 2 + 3 + ... + N în C++Numărul de divizori al unui număr în C++Instrucțiunea do while (structuri repetitive)Verifică dacă un caracter este cifră în C++Prima cifră a unui număr în C++Numărul permutărilor în C++ (formula permutărilor)Interschimbarea a două variabile în C++ (3 metode)Află secolul unui an citit de la tastatură în C++Al N-lea termen Fibonacci în C++De ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleVerifică dacă o literă este mică sau mare în C++Numere triunghiulare. Verificarea unui număr triunghiularPointer în C++. Variabile de tipul char * (char steluță)Operații cu numere mari în C++ - Toate funcțiile explicateCifra de control a unui numărVerifică dacă trei puncte sunt coliniare C++Aria și circumferința unui cerc în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiInstrucțiunea continue (structuri repetitive)Verificare număr prim în C++ (Clasa a IX-a)Citește un șir de caractere cu spații în C++Cel mai semnificativ bit în C++Rădăcina cubică a unui număr în C++ (cube root)Cea mai lungă secvență de elemente crescătoare în C++Valoarea absolută (modulul) unui număr în C++Transformarea unui număr din baza 2 în baza 10 în C++Verifică dacă o literă este vocală în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)CMMMC a două numere în C++ (cel mai mic multiplu comun)Funcții predefinite în C++ (matematice, șiruri de caractere)Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Ce înseamnă endl în C++?Maximul și minimul unui vector în C++Indicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Factorialul unui număr în C++Recursivitate în C++Cum să citești și să afișezi în fișiere în C++Suma elementelor unui vector recursiv în C++Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicInstrucțiunea for (structuri repetitive)Câte numere naturale sunt într-un interval dat? (C++)Numărul combinărilor în C++ (formula combinărilor)Maximul și minimul a trei valori în C++Oglinditul unui număr în C++Distanța dintre două puncte în C++Numărul de apariții al unui număr într-un vector în C++Generarea șirului Fibonacci generalizat în C++Cel mai mic număr cu suma cifrelor N în C++Interclasarea a doi vectori în C++Comentarii în C++Complexitatea unui algoritm (timp și spațiu) în C++Indicatorul lui Euler în C++Citirea și afișarea matricelor în C++Numărul de cifre ale factorialului unui numărCMMDC recursiv a două numere naturale în C++Numărul minim de peroane pentru o gară în C++Do while vs while în C++ - Care e diferența?Ce este o variabilă unsigned în C++?Suma numerelor naturale dintr-un interval dat în C++Afișarea elementelor unui vector recursiv în C++Verifică dacă un caracter este literă în C++Cel mai frecvent element dintr-un șir în C++Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorCifrele unui număr. Prelucrarea cifrelor unui număr în C++Combinatorică în C++: permutări, aranjamente, combinări și alteleCăutare binară în C++Ce este o funcție void în C++?Divide et Impera (metodă de programare C++)Ciurul lui Eratostene în C++Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortMediana unui șir de valori în C++Transformarea unei litere mari în literă mică în C++Radicalul unui număr în C++ (rădăcina pătrată)Suma divizorilor unui număr în C++Afișarea divizorilor primi ai unui număr în C++Funcții în C++. Ce sunt subprogrameleMaximul și minimul a două valori în C++Tutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Al N-lea termen dintr-o progresie geometricăVerificare dacă șir de caractere este palindrom în C++Calculul combinărilor de n luate câte k (nCk) în C++Aria unui triunghi folosind coordonatele acestora în C++Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Oglinditul recursiv al unui număr în C++Verificare dacă un număr este palindrom în C++Maximul și minimul a n valori în C++Numărul de divizori primi ai unui număr în C++Cum să calculezi instant 2 la puterea N în C++Aflarea sumei primelor N sume GaussȘirul lui Fibonacci în C++Al N-lea termen dintr-o progresie aritmeticăInstrucțiunea de decizie în C++: if, else, switch, caseNumărul aranjamentelor în C++ (formula aranjamentelor)Instrucțiunea break (structuri repetitive)Transformarea unei litere mici în literă mare în C++Transformarea unui număr din baza 10 în baza 2 în C++Bordarea unei matrice în C++Verifică dacă un număr este par sau impar fără modulo în C++Copiuțe: Cifrele unui numărVerifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Codul ASCII (tabel complet)Inversarea unui vector în C++Cifra maximă și minimă a unui număr în C++Vectorii în C++: declarare și parcurgereStructuri repetitive (while, do while, for, etc)Matrice pătratice în C++. Diagonala principală și secundarăAlgoritm recursiv pentru căutare binară (clasa a X-a)Ce înseamnă variabilă globală și locală în C++?Șiruri de caractere în C++. Tot ce trebuie să știiCum să afișezi partea întreagă a unui număr real în C++Verifică dacă un număr dat este o putere de 2 în C++Verificarea unui an bisect în C++Verifică dacă un număr aparține șirului Fibonacci în C++Instrucțiunea while (structuri repetitive)Vectorii în C++: citire și afișareVectori de frecvență (de apariții) în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleTipul struct în C++. Ce sunt structurile de date neomogene

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont