In programare, este foarte des intalnita nevoia de a lucra cu cifrele unui numar, nu cu numarul ca intreg. Operatiile de baza sunt: extragerea cifrelor una cate una, calcularea sumei cifrelor, construirea oglinditului (rasturnatul) si verificarea daca un numar este palindrom (adica citit la fel de la stanga la dreapta si de la dreapta la stanga). Pentru a extrage ultima cifra a unui numar, folosim operatorul % (modulo) cu 10, de exemplu, pentru numarul 123, 123 % 10 = 3.
Pentru a elimina ultima cifra, folosim impartirea intreaga la 10: 123 / 10 = 12 (in C++ sau Python, // 10). Repetand aceste doua operatii intr-o bucla pana cand numarul devine 0, putem procesa toate cifrele. Suma cifrelor se obtine adunand fiecare cifra extrasa la un acumulator initializat cu 0.
Oglinditul unui numar se construieste prin extragerea pe rand a ultimei cifre si adaugarea ei la numarul oglindit, inmultind mai intai oglinditul cu 10 si apoi adunand cifra. De exemplu, pentru 123, oglinditul se calculeaza astfel: initial oglindit = 0; extragem 3, oglindit = 0*10 + 3 = 3; numarul devine 12; extragem 2, oglindit = 3*10 + 2 = 32; numarul devine 1; extragem 1, oglindit = 32*10 + 1 = 321. Un numar este palindrom daca oglinditul sau este egal cu numarul original.
Atentie: la numere care se termina cu 0 (de exemplu 120), oglinditul va fi 21, nu 021, deci 120 nu este palindrom. Este important sa lucram cu o copie a numarului initial cand construim oglinditul, pentru a nu pierde valoarea originala. Aceste tehnici sunt fundamentale pentru rezolvarea multor probleme de concurs si pentru intelegerea algoritmilor elementari.
Concepte cheie: Extragerea cifrelor cu %10 si /10, Suma cifrelor unui numar, Construirea oglinditului unui numar, Verificarea proprietatii de palindrom
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.