3
PROBLEME CARE OPEREAZA ASUPRA CIFRELOR UNUI NUMAR 1) Descompunerea unui numar in cifrele sale ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fie n = nr. de descompus. Vom utiliza : d=o variabila pt. a nu-l distruge pe n c=cifra curenta. d=n; do { c=d%10; ..prelucram c = cifra curenta... d/=10; }while(d); Obs: Cifrele ies in ordine inversa (pe dos) 2) Formarea unui numar de la stinga la dreapta ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vom forma numarul in variabila nr. prin adaugari succesive de cifre. -initzializare: nr=0; -de fiecare data knd avem kef sa adaugam o cifra "cif": nr = nr*10+cif; pt n=1234 => nr=4321 3) Formarea unui numar de la dreapta la stinga ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vom forma numarul in variabila nr. prin adaugari succesive de cifre. Ne mai trebuie o variabila p in care memoram o putere a lui 10 (1, 10, 100, 1000, 10000, ...) corespunzatoare cifrei de adaugat in fatza, -initzializare: nr=0;p=1; -de fiecare data knd avem kef sa adaugam o cifra "cif": nr = nr + cif*p; p = p*10; pt n=1234 => nr=1234 4) Transformarea din baza 10 intr-o baza b ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Este ca separarea cifrelor unui numar, doar ca impartzirile NU se mai fac la 10, ci la baza b. !!Daca baza b este >10, nu putem folosi cifrele ca atare, ci ele se identifica prin litere: A = "cifra 10" B = "cifra 11" .... !! d=n;

Probleme Care Opereaza Asupra Cifrelor Unui Numar

Embed Size (px)

DESCRIPTION

probleme informatica

Citation preview

Page 1: Probleme Care Opereaza Asupra Cifrelor Unui Numar

PROBLEME CARE OPEREAZA ASUPRA CIFRELOR UNUI NUMAR

1) Descompunerea unui numar in cifrele sale~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Fie n = nr. de descompus.Vom utiliza : d=o variabila pt. a nu-l distruge pe n c=cifra curenta.

d=n;do{ c=d%10; ..prelucram c = cifra curenta... d/=10;}while(d);

Obs: Cifrele ies in ordine inversa (pe dos)

2) Formarea unui numar de la stinga la dreapta~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Vom forma numarul in variabila nr. prin adaugari succesive de cifre.

-initzializare: nr=0; -de fiecare data knd avem kef sa adaugam o cifra "cif": nr = nr*10+cif; pt n=1234 => nr=4321

3) Formarea unui numar de la dreapta la stinga~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Vom forma numarul in variabila nr. prin adaugari succesive de cifre.Ne mai trebuie o variabila p in care memoram o putere a lui 10 (1, 10, 100, 1000, 10000, ...)corespunzatoare cifrei de adaugat in fatza, -initzializare: nr=0;p=1; -de fiecare data knd avem kef sa adaugam o cifra "cif": nr = nr + cif*p;

p = p*10; pt n=1234 => nr=1234

4) Transformarea din baza 10 intr-o baza b~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Este ca separarea cifrelor unui numar, doar ca impartzirile NU se mai fac la 10, ci labaza b. !!Daca baza b este >10, nu putem folosi cifrele ca atare, ci ele se identifica prin litere: A = "cifra 10" B = "cifra 11" .... !!

d=n;do{ c=d%b; ..prelucram c = cifra curenta... d/=b;}while(d);

obs: cifrele care ies, c, sunt cifrele numarului transformat in baza b, tot

in ordine inversa.

Page 2: Probleme Care Opereaza Asupra Cifrelor Unui Numar

5) Transformarea dintr-o baza b in baza 10 cind dispunem de cifrele din baza b de la stinga la dreapta~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

este ca formarea unui numar de la stinga la dreapta, doar ca inmultzirile NU se mai fac cu cu 10,ci cu baza.Vom forma numarul in variabila nr. prin adaugari succesive de cifre. -initzializare: nr=0; -de fiecare data knd luam o noua cifra "cif" nr = nr*b+cif;

6) Transformarea dintr-o baza b in baza 10 cind dispunem de cifrele din baza b de la dreapta la stinga~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

este ca formarea unui numar de la dreapta la stinga, doar ca inmultzirile NU se mai fac cu cu 10, ci cu baza.Vom forma numarul in variabila nr. prin adaugari succesive de cifre.In variabila p vom memora o puteru a lui b (1, b, b*b, b*b*b, ...)corespunzatoare cifrei de curente -initzializare: nr=0;p=1; -de fiecare data knd avem kef sa adaugam o cifra "cif": nr = nr + cif*p;

p = p*b;

7) Descompunerea in factori primi~~~~~~~~~~~~~~~~~~~~~~~~~

fie nr=nr. de descompus

f=2;//f=factorul curentwhile(nr>1){ p=0; while(nr%f==0)

{ p++; nr/=f;}

if(p)...deducem factor=f shi putere=p...

f++;}