Sunteți pe pagina 1din 6

InfoMoisil Programare C++

Algoritmi_pentru_prelucrarea_cifrelor_unui_numar
Contributed by Administrator Thursday, 04 December 2008 Last Updated Wednesday, 17 December 2008

Pentru prelucrarea cifrelor unui numar se poate folosi unul din urmatorii algoritimi:

- algoritmul pentru extragerea cifrelor unui numar

- algoritmul pentru compunerea unui numar din cifrele sale

- algoritmul pentru determinarea inversului unui numar

1. Algoritmul pentru extragerea cifrelor unui numar: sunt extrase pe rind cifrele c ale numarului incepind cu cifra unitatilor cu operatia n%10 si eliminarea din numar a cifrei extrase, cu operatia n/10. Aceste operatii se executa atita timp cit mai exista cifre de extras din numar adica n diferit de 0.

Exemplu:

Realizati un program care extrage si afiseaza cifrele unui numar citit de la tastatura.

#include<iostream.h>

void main()

int c, n;

cout<<"introduceti numarul "; cin>>n;

while(n!=0)

{ c=n%10;

cout<<c<<endl;

http://www.infomoisil.0fees.net

Powered by Joomla!

Generated: 18 November, 2009, 20:00

InfoMoisil Programare C++

n=n/10; }

Exercitiu:

Realizati un program care sa citeasca un numar de la tastatura si sa afiseze suma cifrelor sale.

#include<iostream.h>

void main()

int c, n, s;

s=0;

cout<<"introduceti numarul "; cin>>n;

while(n!=0)

{ c=n%10;

s=s+c;

n=n/10; }

cout<<"suma cifrelor este "<<s;

Exercitiu:

Se introduc de la tastatura un sir de numere reale, pina la citirea valorii 0. Sa se afiseze toate perechile de numere introduse consecutiv care au proprietatea ca al doilea numar este egal cu suma cifrelor primului.

http://www.infomoisil.0fees.net

Powered by Joomla!

Generated: 18 November, 2009, 20:00

InfoMoisil Programare C++

#include<iostream.h>

void main()

{ int a, b, s, x;

cin>>a; cin>>b;

while(b>0)

{ s=0; x=a;

while(x!=0)

{ s=s+x%10;

x=x/10; }

if(s=b) cout<<a<<" "<<b<<endl;

a=b;

cin>>b;

2. Algoritmul pentru compunerea unui numar din cifrele sale.

Formula folosita la construirea unui numar din cifrele sale este:

nr=nr*10+c;

unde nr este numarul care se construieste iar c este cifra care se adauga la unitati.

Exemplu:

http://www.infomoisil.0fees.net

Powered by Joomla!

Generated: 18 November, 2009, 20:00

InfoMoisil Programare C++

Realizati un program care citeste cifrele unui numar de la tastatura si apoi afiseaza numarul.

#include<iostream.h>

void main()

{ int c, nr;

nr=0;

cin>>c;

while((c>=0)&&(c<=9))

{ nr=nr*10+c;

cin>>c; }

cout<<"numaru este "<<nr;

3. Algoritmul pentru determinarea inversului unui numar. Algoritmul determina inversul unui numar n prin extragerea pe rind a fiecarei cifre (incepind cu cifra unitatilor) din numarul n si compunerea unui nou numar cu aceste cifre.

Pasii algoritmului sunt:

a. se citeste numarul n

b. se initializeaza numarul invers cu valoarea 0

c. se extrage cifra cea mai semnificativa din numarul n si se aduna cifra la numarul inv*10, prin operatia inv=inv*10+n%10;

d. se elimina din numarul n cifra extrasa, cu operatia n=n/10

e. daca n este diferit de 0 se revine la pasul 3.

http://www.infomoisil.0fees.net

Powered by Joomla!

Generated: 18 November, 2009, 20:00

InfoMoisil Programare C++

Exemplu:

#include<iostream.h>

void main()

{int n,inv;

cout<<"introduceti numarul "; cin>>n;

inv=0;

while(n!=0)

{ inv=inv*10+n%10;

n=n/10; }

cout<<"inversul numarului este "<<inv;

Exercitiu:

Realizati un program care sa citeasca un numar de la tastatura si sa verifice daca este palindrom.

#include<iostream.h>

void main()

{ int n, nr, inv;

cout<<"introduceti numarul "; cin>>n;

nr=n; inv=0;
http://www.infomoisil.0fees.net Powered by Joomla! Generated: 18 November, 2009, 20:00

InfoMoisil Programare C++

while (n!=0)

{ inv=inv*10+n%10;

n=n/10; }

if(nr=inv)

cout<<"Numarul este palindrom";

else

cout<<"Numarul nu este palindrom";

http://www.infomoisil.0fees.net

Powered by Joomla!

Generated: 18 November, 2009, 20:00

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