Sunteți pe pagina 1din 2

CAP.

V Implementarea algoritmilor n limbajul de programare C++

5.9. Aplicaii implementare algoritmi n C++

A02. PROGRAM C++ PENTRU CALCUL SUMEI I PRODUSULUI CIFELOR UNUI NUMR Enunt : Se citeste un numr natural n. S se afiseze suma si produdul cifrelor sale. (exp: n=123 => s=1+2+3=6, p=1*2*3=6) Date de intrare : n = numrul citit de la tastatur Date intermediare : c = ultima cifr a numrului n Date de iesire : s,p = suma si produsul cifrelor numrului n Algoritmul determin cifrele numrului n, prin extragerea pe rnd a fiecrei cifre (ncepnd cu cifra unittilor), cu operatia n mod 10, si eliminarea din numr a cifrei extrase, cu operatia n div 10. Aceste operatii se execut ct timp mai exist cifre de extras din n (n<>0). PROGRAM C++ #include<iostream> using namespace std; int main(){ int n, c, s=0, p=1;

// n numrul citit de la tastatur, // c ultima cifr a numrului, // s,p suma/produsul cifrelor numrului

cout<<"n="; cin>>n; while (n){ // while (n<>0) c=n%10; s+=c; // s=s+c; p*=c; // p=p*c; n/=10; // n=n/10; } cout<<"Suma="<<s<<endl; cout<<"Produsul="<<p; return 0; }

PASUL P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15 P16 P17 P18 P19

n 123 123 123 123 123 123 123 div 10 = 12 12 12 12 12 12 div 10 = 1 1 1 1 1 1 div 10 = 0 0 0

c 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1

s 0 0 0 0+3=3 3 3 3 3 3+2=5 5 5 5 5 5+1=6 6 6 6 6

p 1 1 1 1 1*3=3 3 3 3 3 3*2=6 6 6 6 6 6*1=6 6 6 6

n<>0 123<>0=TRUE TRUE TRUE TRUE TRUE 12<>0=TRUE TRUE TRUE TRUE TRUE 1<>0=TRUE TRUE TRUE TRUE TRUE 0<>0=FALSE FALSE

Brebenel George Colegiul Tehnic Iuliu Maniu-2009

CAP.V Implementarea algoritmilor n limbajul de programare C++

5.9. Aplicaii implementare algoritmi n C++

Exercitii suplimentare : 1. Se citeste un numr natural n. S se afiseze suma si produsul cifrelor pare. (exp : n=1234 => s=2+4=6, p=2*4=8) 2. Se citeste un numr natural n. S se afiseze suma si produsul cifrelor din pozitiile pare. Numerotarea pozitiilor se face ncepnd cu cifra cea mai semnificativ. (exp : n=27156 => s=7+5=12, p=7*5=35) 3. Se introduc de la tastatur n numere. S se afiseze cea mai mare cifr a fiecrui numr. (exp : n=3, a={123, 371, 459} => {3, 7, 9}) 4. S se afiseze toate numerele naturale de maxim patru cifre care are proprietatea c sunt egale cu ptratul cifrelor lor. (exp : n=81, s=8+1=9 si 81=9*9) 5. S se afiseze toate numerele naturale mai mici dect n care au proprietatea c ptratul si cubul fiecruia au cel putin o cifr comun. 6. S se afiseze toate numerele din intervalul [a,b] care au suma cifrelor un numr par. Valorile pentru a si b se citesc de la tastatur. (exp : a=10, b=15 => {11, 13, 15}) 7. Se citesc de la tastatur un numr k0 si un sir de numere ntregi, pn la ntlnirea numrului 0. S se afiseze cte numere din sir au suma cifrelor k. (exp : k=5, a={253, 131, 23, 50, 145, 104, 0} => 4 (nr. au suma cifrelor 5 : {131, 23, 50, 104}) 8. Se citeste un numr natural n. S se afiseze toate numerele mai mici dect n care sunt egale cu suma ptratelor cifrelor lor. 9. Se citeste un numr natural n. S se afiseze numrul obtinut prin eliminarea cifrei din mijloc, dac n are un numr impar de cifre, respectiv a celor dou cifre din mijloc, dac n are un numr par de cifre. (exp : n=125423 => n=1223) 10. Se considera un numr natural n. Sa se determine cifra de baz a acestui numar.(se calculeaza suma cifrelor numrului, pn cand suma obtinuta este de o cifra). (exp : n=13481=>17=>8) 11. Cunoscandu-se limitele intregi a, b ale unui interval i un ir de n valori, s se realizeze un program care determin media aritmetic a numerelor citite, pentru care suma cifrelor aparine intervalului [a,b]. (exp : a=2, b=10, n=5, nr={11,39,32,80,84} => med=41.0) 12. S se determine cel mai mare numr care se poate forma cu ajutorul cifrelor unui numr natural citit de la tastatur. (exp : n=30027 => 73200)

Brebenel George Colegiul Tehnic Iuliu Maniu-2009

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