Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Cifrele impare dintr-un numar  (Citit de 1156 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Peter
Strain
*

Karma: -10
Deconectat Deconectat

Mesaje: 31



Vezi Profilul
« : Februarie 08, 2014, 19:26:19 »

Salut. Cum pot crea un vector cu cifrele impare ale unui numar? De exemplu pentru numarul n=12345532 sa am vectorul V format din cifrele 1,3,5,5,3. Am calculat cate cifre impare are numarul, dar nu stiu sa le afisez! Dati-mi va rog o idee. Multumesc.
Memorat
harababurel
Client obisnuit
**

Karma: 23
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #1 : Februarie 09, 2014, 11:43:02 »

Cod:
dim = 0;
while(n) {
  if(n%2 == 1) digit[++dim] = n % 10;
  n /= 10;
}

for(int i=dim; i>=1; i--) cout<<digit[i]<<" ";

digit[] - vectorul in care tii cifrele impare
dim - ultima pozitie ocupata din digit[]
De fiecare data cand numarul curent ii impar (-> are ultima cifra para), se adauga ultima cifra pe urmatoarea pozitie libera din vector.
Cifrele sunt eliminate de la dreapta la stanga, deci le tiparesti in ordine inversa, de la dim (=ultima pozitie) la 1 (prima).
Memorat
Peter
Strain
*

Karma: -10
Deconectat Deconectat

Mesaje: 31



Vezi Profilul
« Răspunde #2 : Februarie 09, 2014, 15:56:49 »

Mersi mult. Imi poti explica te rog ce inseamna
Cod:
digit[++dim]
. Chestia asta cu ++dim detaliaz-o te rog putin Smile Nu am mai intalnit-o pana acum.
Memorat
harababurel
Client obisnuit
**

Karma: 23
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #3 : Februarie 09, 2014, 17:39:34 »

Operatorul "++" iti incrementeaza (aduna 1) la obiectul asupra caruia il aplici.
Poate fi folosit in 2 moduri, prefix (++dim) sau postfix (dim++).
Diferenta e ca "++dim" il incrementeaza pe dim, dupa care il transmite ca pozitie in vector. Pentru dim = 4, digit[++dim] indica spre digit[5].
"dim++" il transmite mai intai ca pozitie, dupa care il incrementeaza. Pentru dim = 4, digit[dim++] indica spre digit[4], dupa care dim devine 5.

Poti folosi in cazul de fata si "dim++", dar o sa ai de parcurs la final intervalul dim-1 -> 0 in loc de dim -> 1.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines