Sunteți pe pagina 1din 2

Prelucrarea cifrelor unui număr

Fie N un număr natural. Avem nevoie sa prelucram pe rând cifrele unui număr natural.

In prelucrarea cifrelor numărului, cel mai ușor ajungem la ultima cifra (N%10) . După
prelucrarea ei, ultima cifra va trebui înlăturată (N=N/10). Si totul trebuie repetat cat timp N mai are cifre
(N!=0).

De vreme ca nu știm cate cifre are N, nu putem folosi instrucțiunea FOR/PENTRU. Rămân
instrucțiunile repetitive cu un număr necunoscut de pași : CAT TIMP EXECUTA/WHILE si EXECUTA
CAT TIMP/ DO WHILE.

Pentru CAT TIMP EXECUTA/WHILE am un contraargument. Algoritmul ar trebui sa fie

cat timp (N!=0) executa { //prel ultima cifra a lui N

                             .......N%10;

             //stergem ultima cifra

                   N=N/10;

                     }

Daca utilizatorul dorește sa aplice algoritmul pentru valoarea zero, nu se va efectua nimic si
secvența noastră nu se va executa. Evident, situația se poate evita prin plasarea unui test înainte de
CAT TIMP , care sa verifice daca N este nul.

Nu rămâne decât varianta cu EXECUTA CAT TIMP/DO WHILE.

executa{ //prel ultima cifra a lui N

                             .......N%10;

             //ștergem ultima cifra

                   N=N/10;

                     } cat timp (N!=0);

Câteva probleme clasice pentru acest algoritm:

1. Sa se numere cate cifre are numărul N


2. Sa se stabilească cate cifre pare/impare are numărul N.
3. Sa se stabilească daca N conține o cifra data, CIF.
4. Sa se numere de cate ori apare cifra CIF in numărul N.
5. Sa se determine cifra maxima/minima din numărul N
6. Sa se construiască “oglinditul” numărului N. Pentru N=3648 se va afișa 8463.
7. Sa se stabilesc daca N este palindrom (egal cu oglinditul sau).
8. Pentru un număr N dat, sa se construiască cel mai mare număr natural care se poate forma cu
cifrele lui N.
9. Să se scrie un program care să determine ultima cifră pară a unui număr natural citit de la
tastatură.
Prelucrarea cifrelor unui număr
10. Se dă un număr natural format din cifrele 2 sau 3. Aflaţi cifra care apare de cele mai multe
ori în scrierea numărului .
11. Să se scrie un program care să determine numărul de apariţii a primei cifre în scrierea unui
număr natural citit de la tastatură.
12. Să se scrie un program care să determine suma primelor două cifre ale unui număr natural
citit de la tastatură.
13. Se citeşte de la tastatură un număr natural. Să se determine cea mai mare cifră care apare în
scrierea acestuia şi numărul de apariţii ale ei.
14. Se citește de la tastatură un număr natural n, apoi n numere naturale. Să se calculeze suma
obținută prin adunarea primei cifre a fiecărui număr.
15. Se dau două numere naturale a și b. Determinați numărul de palindroame cuprinse în
intervalul determinat de cele două numere.
16. Un număr natural se împarte la toate numerele obținute din el prin eliminarea unei cifre. Care
este restul maxim care se poate obține?
17. Se citește un număr natural n. Determinați cel mai mare număr care se poate obține prin
eliminarea unei singure cifre din scrierea numărului n.
18. Se dă numărul natural n. Afișați în ordine strict crescătoare cifrele care apar în scrierea
zecimală a lui n.
19. Se citesc două numere naturale n și m. Să se decidă dacă cele două numere au cel puțin o
cifră comună.
20. Se dau două numere naturale a b. Determinați câte numere naturale din
intervalul [a,b] se divid cu toate cifrele lor nenule.
21. Se citește un număr natural n. Acest număr se “împarte” în alte două numere a și b,
astfel: a este format din cifrele din prima jumătate a lui n, b este format din cifrele din a
doua jumătate a lui n. Dacă n are număr impar de cifre, cifra din mijloc se ignoră. De
exemplu, dacă n=9183792, atunci a=918, iar b=792. Să se determine valoarea
absolută a diferenței dintre a și b.
22. Se citește un număr natural n. Să se determine cate cifre are numărul format din alipirea
tuturor numerelor de la 1 la n. de exemplu pentru n=12 se va afișa 15 pentru ca numărul
123456789101112 are 15 cifre.
23. Se citește un număr natural n. Să se determine cifra de pe poziția n dacă se alipesc
numerele 1,2,… De exemplu pentru n=14 se va afișa 1 (123456789101112).

S-ar putea să vă placă și