MeditatiiDirect.ro Logo
MeditatiiDirect.ro
Educație la un click distanță
MeditatiiMateriiAdmitereTutorialePregatire BACSubiecte BACVariante BACBlog
InformaticăliceuClasa 9usor

Parcurgerea Cifrelor unui Număr în C++

Învață să extragi și să prelucrezi cifrele unui număr natural în C++. Tutorial complet cu exemple, greșeli frecvente și exerciții tip pbinfo.

3 luni în urmă
0 vizualizări
30 minute

Parcurgerea Cifrelor unui Număr în C++

Definiție

Parcurgerea cifrelor unui număr înseamnă procesul prin care extragem și prelucrăm fiecare cifră a unui număr natural, de obicei de la dreapta la stânga (de la ultima cifră la prima).

Teorie

Pentru a extrage cifrele unui număr n, folosim două operații fundamentale:

  1. •n % 10 - extrage ultima cifră (restul împărțirii la 10)
  2. •n / 10 - elimină ultima cifră (câtul împărțirii la 10)

Algoritmul de bază

Cât timp n != 0:
    cifra = n % 10      (extrage ultima cifră)
    prelucrează cifra
    n = n / 10          (elimină ultima cifră)

Exemple C++ Compilabile

Exemplul 1: Afișarea cifrelor unui număr

1#include <iostream>
2using namespace std;
3
4int main() {
5    int n;
6    cout << "Introduceti un numar: ";
7    cin >> n;
8    
9    cout << "Cifrele numarului sunt: ";
10    while (n != 0) {
11        int cifra = n % 10;
12        cout << cifra << " ";
13        n = n / 10;
14    }
15    
16    return 0;
17}

Exemplu de execuție:

  • •Input: 1234
  • •Output: Cifrele numarului sunt: 4 3 2 1

Exemplul 2: Suma cifrelor unui număr

1#include <iostream>
2using namespace std;
3
4int main() {
5    int n, suma = 0;
6    cout << "Introduceti un numar: ";
7    cin >> n;
8    
9    while (n != 0) {
10        suma = suma + n % 10;
11        n = n / 10;
12    }
13    
14    cout << "Suma cifrelor: " << suma << endl;
15    return 0;
16}

Exemplu de execuție:

  • •Input: 1234
  • •Output: Suma cifrelor: 10 (1+2+3+4)

Exemplul 3: Numărul de cifre

1#include <iostream>
2using namespace std;
3
4int main() {
5    int n, nr_cifre = 0;
6    cout << "Introduceti un numar: ";
7    cin >> n;
8    
9    if (n == 0) {
10        nr_cifre = 1;  // Cazul special: 0 are o cifră
11    } else {
12        while (n != 0) {
13            nr_cifre++;
14            n = n / 10;
15        }
16    }
17    
18    cout << "Numarul are " << nr_cifre << " cifre" << endl;
19    return 0;
20}

Exemplul 4: Oglinditul (inversul) unui număr

1#include <iostream>
2using namespace std;
3
4int main() {
5    int n, oglindit = 0;
6    cout << "Introduceti un numar: ";
7    cin >> n;
8    
9    while (n != 0) {
10        int cifra = n % 10;
11        oglindit = oglindit * 10 + cifra;
12        n = n / 10;
13    }
14    
15    cout << "Oglinditul: " << oglindit << endl;
16    return 0;
17}

Exemplu de execuție:

  • •Input: 1234
  • •Output: Oglinditul: 4321

Exemplul 5: Cifra maximă dintr-un număr

1#include <iostream>
2using namespace std;
3
4int main() {
5    int n, maxim = 0;
6    cout << "Introduceti un numar: ";
7    cin >> n;
8    
9    while (n != 0) {
10        int cifra = n % 10;
11        if (cifra > maxim) {
12            maxim = cifra;
13        }
14        n = n / 10;
15    }
16    
17    cout << "Cifra maxima: " << maxim << endl;
18    return 0;
19}

Greșeli Frecvente

1. Uitarea cazului n = 0

1// GREȘIT - pentru n=0, while-ul nu se execută deloc
2int nr_cifre = 0;
3while (n != 0) {
4    nr_cifre++;
5    n = n / 10;
6}
7// nr_cifre rămâne 0, dar 0 are 1 cifră!
8
9// CORECT
10int nr_cifre = 0;
11if (n == 0) nr_cifre = 1;
12else {
13    while (n != 0) {
14        nr_cifre++;
15        n = n / 10;
16    }
17}

2. Modificarea variabilei originale

1// GREȘIT - pierdem valoarea lui n
2int n;
3cin >> n;
4while (n != 0) {
5    // ... prelucrare
6    n = n / 10;
7}
8cout << n;  // n este acum 0!
9
10// CORECT - folosim o copie
11int n, copie;
12cin >> n;
13copie = n;
14while (copie != 0) {
15    // ... prelucrare
16    copie = copie / 10;
17}
18cout << n;  // n păstrează valoarea inițială

3. Confuzia între % și /

1// % 10 = ultima cifră
2// / 10 = numărul fără ultima cifră
3
4int n = 1234;
5cout << n % 10;  // 4 (ultima cifră)
6cout << n / 10;  // 123 (fără ultima cifră)

Exerciții Tip PBInfo

Exercițiul 1 - Suma cifrelor pare

Să se afișeze suma cifrelor pare ale unui număr natural n.

  • •Exemplu: n = 2468 → Rezultat: 20 (2+4+6+8)

Exercițiul 2 - Prima și ultima cifră

Să se afișeze prima și ultima cifră a unui număr natural n.

  • •Exemplu: n = 12345 → Prima: 1, Ultima: 5

Exercițiul 3 - Număr palindrom

Să se verifice dacă un număr este palindrom (egal cu oglinditul său).

  • •Exemplu: n = 12321 → DA (este palindrom)

Exercițiul 4 - Frecvența unei cifre

Să se numere de câte ori apare cifra c în numărul n.

  • •Exemplu: n = 121212, c = 2 → Rezultat: 3

Exercițiul 5 - Cifre distincte

Să se verifice dacă toate cifrele unui număr sunt distincte.

  • •Exemplu: n = 1234 → DA, n = 1214 → NU

Tutorialul te-a ajutat?

Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații

MeditatiiDirect.ro Logo
MeditatiiDirect.ro

Platforma educationala din Romania pentru meditatii particulare. Profesori verificati, recenzii reale, inscriere gratuita.

Cauta sau publica anunturi gratuit pentru toate materiile scolare.

Meditatii

  • Meditatii
  • Meditatii Matematica
  • Meditatii Informatica
  • Meditatii Romana
  • Meditatii Engleza
  • Anunturi Meditatii
  • Meditatii Online
  • Ore Online
  • Meditatii BAC
  • Meditatii Bucuresti
  • Meditatii Cluj-Napoca
  • Meditatii Timisoara
  • Meditatii Iasi
  • Meditatii Fizica
  • Meditatii Chimie
  • Meditatii Biologie

Materii Populare

  • Matematică
  • Limba Română
  • Limba Engleză
  • Informatică
  • Fizică
  • Toate Materiile →

Platforma

  • Cum functioneaza
  • Pentru elevi si parinti
  • Pentru profesori
  • Intrebari frecvente
  • Despre noi
  • Publica anunt gratuit

Resurse

  • Profesor Particular
  • Pregatire BAC
  • Admitere Facultate
  • Universitati Romania
  • Facultati Medicina
  • Facultati Informatica
  • Facultati Politehnica
  • Facultati Drept
  • Facultati Economice
  • Facultati Psihologie
  • Grile UPB
  • Grile Medicina
  • Grile Auto 2026
  • Variante BAC 2026
  • Simulare BAC 2026
  • Subiecte BAC
  • Subiecte Admitere
  • Titularizare 2025
  • Tutoriale
  • Blog educational
  • Ore Online
  • Profesori Online
  • Contact

MeditatiiDirect.ro este o platforma educationala din Romania unde gasesti meditatii si profesori particulari verificati pentru matematica, limba romana, engleza, informatica, fizica, chimie si alte materii. Disponibil in Bucuresti, Cluj-Napoca, Timisoara, Iasi si toata Romania, inclusiv meditatii online. Publica sau gaseste anunturi meditatii gratuit, programeaza ore online cu profesori verificati, cauta un profesor particular sau incepe meditatii BAC si admiterea la facultate.

© 2026 MeditatiiDirect. Toate drepturile rezervate.