Cum aflu cifrele unui număr în C++?

Cu n % 10 iei ultima cifră și cu n / 10 o tai, cât timp n > 0. Cifrele ies de la dreapta la stânga.

Toate prelucrările de cifre se bazează pe două operații: n % 10 este ultima cifră, iar n / 10 este numărul fără ultima cifră. Repetate într-o buclă, îți dau toate cifrele, de la dreapta la stânga:

while (n > 0) {
    int c = n % 10;   // cifra curentă
    // prelucrez c
    n /= 10;
}

Suma cifrelor, numărul de cifre, cea mai mare cifră, câte cifre pare are: toate folosesc aceeași buclă, cu alt corp.

Trei lucruri de ținut minte:

  • Bucla distruge n. Dacă mai ai nevoie de valoarea inițială, lucrează pe o copie.
  • Pentru n = 0 bucla nu pornește. Numărul de cifre al lui 0 este 1, dar bucla dă 0, deci tratezi cazul separat.
  • Construirea inversă se face cu r = r * 10 + c. Așa obții răsturnatul. Ca să păstrezi ordinea cifrelor, folosești o putere a lui 10 care crește.

Lecția despre cifre trece prin toate tiparele, inclusiv palindromul.

Lecția care merge mai departe: Prelucrarea cifrelor unui număr