Ce vei învăța astăzi?
După această lecție vei ști să extragi cifrele unui număr și să adaugi o cifră la dreapta sau la stânga unui număr.
Extragerea ultimei cifre
Definiție: Ultima cifră a unui număr natural n se obține cu operația n % 10. Operatorul % ne dă restul împărțirii lui n la 10.
De exemplu, pentru n = 1234, avem 1234 % 10 = 4, adică ultima cifră a lui 1234 este 4.
Analogie
Imaginează-ți un număr ca pe o cutie cu bile pe etaje. Restul împărțirii la 10 îți arată exact bila de la parter, adică unitățile. Nu contează câte etaje are cutia, bila de jos este mereu ultima cifră.
Eliminarea ultimei cifre
Definiție: Pentru a elimina ultima cifră a unui număr n folosim operația n // 10. Operatorul // este împărțirea întreagă, adică ne dă câtul fără virgulă.
De exemplu, 1234 // 10 = 123. Am „tăiat" ultima cifră (4) și am rămas cu 123.
Exemplu: extragem cifrele lui 1234 în ordine inversă
n = 1234
while n > 0:
print(n % 10, end=" ")
n = n // 10
Observă: la fiecare pas scoatem ultima cifră cu % 10, apoi o eliminăm cu // 10, până când n devine 0. Rezultatul afișat este: 4 3 2 1.
Adăugarea unei cifre la dreapta
Definiție: Pentru a adăuga o cifră c la dreapta unui număr n folosim formula n = n * 10 + c. Înmulțim numărul cu 10 (facem loc pentru o cifră nouă) și adunăm cifra.
De exemplu, dacă n = 12 și adăugăm cifra 7, obținem 12 * 10 + 7 = 127.
Exemplu în Python
n = 12 c = 7 n = n * 10 + c print(n)
Observă: acest tipar este folosit pentru a construi un număr nou, cifră cu cifră, de exemplu atunci când formăm oglinditul.
Adăugarea unei cifre la stânga
Definiție: Pentru a adăuga o cifră c la stânga unui număr n folosim formula n = c * 10**p + n, unde p este numărul de cifre ale lui n (adică puterea lui 10 corespunzătoare: 10 înmulțit cu el însuși de p ori, de exemplu 10**2 = 100).
De exemplu, dacă n = 23 (are 2 cifre, deci p = 2) și adăugăm cifra 5 la stânga, obținem 5 * 10**2 + 23 = 500 + 23 = 523.
Analogie
Adăugarea la dreapta este ca și cum ai pune o bilă nouă la parter. Adăugarea la stânga este ca și cum ai pune bila nouă pe acoperiș: toate celelalte bile coboară cu un etaj, deci trebuie să înmulțești cu puterea potrivită a lui 10.
| Operație | Formula | Exemplu |
|---|---|---|
| Ultima cifră | n % 10 |
1234 % 10 = 4 |
| Elimină ultima cifră | n // 10 |
1234 // 10 = 123 |
| Adaugă cifra c la dreapta | n = n * 10 + c |
12 * 10 + 7 = 127 |
| Adaugă cifra c la stânga | n = c * 10**p + n |
5 * 10**2 + 23 = 523 |
Exercițiu de completare
Completează afirmațiile despre operațiile cu cifre cu simbolurile potrivite:
Ultima cifră a unui număr n se obține cu operația n ______ 10. Pentru a elimina ultima cifră folosim n ______ 10. Pentru a adăuga o cifră c la dreapta lui n folosim n = n ______ 10 + c. Pentru a adăuga o cifră la stânga avem nevoie de puterea lui ______, adică n = c * 10**p + n.
Bancă de cuvinte:
Test de înțelegere
Test rapid - operații cu cifre:
1. Ultima cifră a numărului 123 este:
2. Rezultatul operației 123 // 10 este:
3. Adăugarea cifrei 7 la dreapta lui 12 dă numărul:
Test de înțelegere - suplimentar
Test rapid suplimentar - operații cu cifre:
1. Cifra zecilor a numărului 1234 este:
2. Adăugarea cifrei 5 la stânga lui 23 dă numărul:
3. Pentru a elimina ultima cifră a unui număr n folosim:
Aprofundare
Cazul n = 0: pentru n = 0, bucla while n > 0 nu se execută nici măcar o dată. Dacă problema cere „numărul de cifre al lui 0", rezultatul nu este 0, ci 1, pentru că 0 este scris cu o singură cifră. De aceea, unele probleme tratează separat cazul n = 0, cu o verificare if n == 0 înaintea buclei.
Cifre repetate: dacă un număr are cifre identice, de exemplu 777, operația n % 10 întoarce aceeași cifră la fiecare pas, dar de fiecare dată este o poziție diferită (unități, zeci, sute). Oglinditul lui 777 este tot 777, deci orice număr cu toate cifrele egale este automat palindrom.
Adăugarea la stânga și puterile lui 10: formula n = c * 10**p + n presupune că știm numărul de cifre p ale lui n. Putem calcula p fără o buclă separată folosind conversia la șir: p = len(str(n)). Pentru numere cu multe cifre, 10**p crește foarte repede, de aceea în programele de competiție se preferă construirea oglinditului, care nu are nevoie de puteri ale lui 10.
Ordinea operațiilor: la adăugarea unei cifre la dreapta trebuie întâi să înmulțim cu 10 și apoi să adunăm cifra. Dacă am scrie n = n + c * 10, am adăuga cifra la stânga, ceea ce produce un rezultat complet diferit. Verifică întotdeauna cu un exemplu numeric înainte de a rula programul.
PbInfo - Ultima cifră a unui număr
Enunț:
Cerință: Se citește un număr natural n. Să se afișeze ultima cifră a lui n.
Date de intrare:
Programul citește de la tastatură numărul n.
Date de ieșire:
Programul va afișa pe ecran ultima cifră a lui n.
Restricții și precizări:
Numerele citite sunt numere naturale, cu valori mai mici decât 10^9.
Exemplu:
Intrare:
1234
Ieșire:
4
Cum gândim soluția:
- Citim numărul n cu
input()și îl transformăm cuint() - Ultima cifră este restul împărțirii lui n la 10:
n % 10 - Afișăm rezultatul cu
print()
Scrie soluția în Python:
Soluție corectă:
n = int(input()) print(n % 10)
Ce învățăm: ultima cifră a oricărui număr natural se obține întotdeauna cu operația n % 10.
PbInfo - Cifra zecilor
Enunț:
Cerință: Se citește un număr natural n. Să se afișeze cifra zecilor a lui n.
Date de intrare:
Programul citește de la tastatură numărul n.
Date de ieșire:
Programul va afișa pe ecran cifra zecilor a lui n.
Restricții și precizări:
Numerele citite sunt numere naturale, cu valori mai mici decât 10^9.
Exemplu:
Intrare:
1234
Ieșire:
3
Cum gândim soluția:
- Eliminăm ultima cifră cu
n // 10 - Ultima cifră a rezultatului este cifra zecilor:
(n // 10) % 10 - Afișăm rezultatul cu
print()
Scrie soluția în Python:
Soluție corectă:
n = int(input()) print((n // 10) % 10)
Ce învățăm: combinând // 10 cu % 10 putem obține orice cifră dintr-un număr.
Exercițiul Practic: Operații cu cifrele unui număr
Sarcini de lucru
Completează următoarele sarcini pentru a-ți consolida cunoștințele despre cifrele unui număr
Sarcina 1: Afișează cifrele în ordine inversă
Cerință: Scrie un program care citește un număr n și afișează cifrele lui n în ordine inversă, folosind o buclă while cu % și //.
Soluție pentru Sarcina 1:
n = int(input())
while n > 0:
print(n % 10)
n = n // 10
Verifică: pentru n = 1234 se afișează 4, 3, 2, 1, fiecare pe o linie.
Sarcina 2: Adaugă o cifră la dreapta
Cerință: Scrie un program care citește un număr n și o cifră c, apoi afișează numărul obținut prin adăugarea cifrei c la dreapta lui n (folosește formula n * 10 + c).
Soluție pentru Sarcina 2:
n = int(input()) c = int(input()) n = n * 10 + c print(n)
Verifică: pentru n = 12 și c = 7 se afișează 127.
Scrie pe caiet - De reținut
Titlul lecției
Operații cu cifrele unui număr - extragerea cifrelor și adăugarea unei cifre la stânga sau la dreapta.
Definiția lecției
În această lecție învățăm să prelucrăm cifrele unui număr natural cu două operații esențiale: % (restul împărțirii) ne dă ultima cifră, iar // (împărțirea întreagă) elimină ultima cifră. Combinându-le într-o buclă while, parcurgem toate cifrele numărului, de la ultima la prima. Apoi învățăm să construim numere noi: o cifră se adaugă la dreapta cu n = n * 10 + c, iar la stânga cu n = c * 10**p + n, unde p este numărul de cifre. Aceste operații stau la baza verificării numerelor de card și a codurilor de bare, precum și a oglinditului și a palindromului din lecțiile următoare. De exemplu, pentru a afla dacă un număr se citește la fel și inversat, primul pas este exact extragerea cifrelor sale.
Definiții esențiale
- Ultima cifră a unui număr natural n se obține cu
n % 10(restul împărțirii la 10). - Eliminarea ultimei cifre se face cu
n // 10(câtul împărțirii la 10). - Adăugarea unei cifre c la dreapta lui n:
n = n * 10 + c. - Adăugarea unei cifre c la stânga lui n:
n = c * 10**p + n, unde p este numărul de cifre al lui n. - Combinând
% 10cu// 10într-o buclăwhile n > 0, parcurgem toate cifrele numărului.
Algoritmul cheie - pseudocod
Algoritmul cheie - cod Python
n = int(input())
while n > 0:
c = n % 10
print(c, end=" ")
n = n // 10Greșeli comune de evitat
- Confuzia între
%și//:n % 10dă ultima cifră,n // 10o elimină. - Prelucrarea numărului n fără să-l salvezi: după buclă, n este 0 și valoarea inițială s-a pierdut.
- Adăugarea la stânga fără puterea lui 10:
n = c + nadună, nu adaugă o cifră. - Folosirea lui
print(n % 10)fărăend=" "atunci când rezultatele trebuie pe aceeași linie.
Sfaturi practice și trucuri
- Înainte de o buclă care modifică n, salvează valoarea inițială:
x = n. - Pentru cifra zecilor folosește
(n // 10) % 10; pentru cifra sutelor,(n // 100) % 10. - Verifică algoritmul pe hârtie cu un număr mic (ex: 123) înainte să-l rulezi.
- La adăugarea unei cifre la dreapta, ordinea este: întâi
n * 10, apoi+ c.
Exemplu practic
Extragem cifrele anului 2025 pentru a vedea cum „se desface" un număr în cifrele sale componente:
n = 2025
while n > 0:
print(n % 10, end=" ")
n = n // 10Programul afișează 5 2 0 2 - cifrele lui 2025, de la ultima la prima.