Folosind cele doua probleme:
- calculul sumei cifrelor unui numar
- numararea cifrelor unui numar
prezentate in fisierul STRUCTURI DE CONTROL,
scrieti in Codeblocks, rulati si postati aici la tema independenta,
diverse probleme derivate (calculul produsului cifrelor unui numar, suma cifrelor pare, produsul cifrelor mai mari ca 5, numarul cifrelor impare si divizibile cu 3)

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int main(){

int x;

cin>>x;

//1.Calculul produsului cifrelor unui nr

int cx=x; // facem o copie a nr-ului x pt a nu-l pierde

int p=1;

while(cx!=0){

int uc=cx%10; //aici luam ultima cifra din numarul cx, unde cx=copia lui x

p=p*uc; /*aici calculam produsul cifrelor(fiecare cifra se adauga la produs, initializat la inceput de tot si o singura data cu 1 */

cx=cx/10; // taiam ultima cifra pt a o adauga pe urmatoarea

}

cout<<"Produsul cifrelor numarului"<< x<<"este "<<p;

cout<<endl;

//2. suma cifrelor pare

int c2x=x; // facem din nou o copie a nr-ului x pt a nu-l pierde

int s=0;

while(c2x!=0){

int uc=c2x%10; //aici luam ultima cifra din numarul c2x, unde c2x=copia lui x

if(uc%2==0)//daca cifra uc este para, adica cifra este divizibila cu 2

{s=s+uc;} /*aici calculam suma cifrelor doar dc.conditia e indeplinita(fiecare cifra se adauga la suma, initializat la inceput de tot si o singura data cu 0 */

c2x=c2x/10; // taiam ultima cifra pt a o adauga pe urmatoarea

}

cout<<"Suma cifrelor pare ale numarului<< x<<"este "<<p<<endl;

//3.produsul cifrelor mai mari ca 5

/*Ca si in primul caz vom calcula produsul cifrelor unui numar, dar de data aceasta doar daca este indeplinita o conditie */

int c3x=x; // facem o copie a nr-ului x pt a nu-l pierde

int p2=1;

while(c3x!=0){

int uc=c3x%10; //aici luam ultima cifra din numarul c3x, unde c3x=copia lui x

if(uc>5)// verificam daca cifra e mai mare decat 5

{p2=p2*uc;} /*aici calculam produsul cifrelor care verifica conditia de mai sus, in caz contrar trecem la urmatorul pas, adica taiam cifre in continuare */

c3x=c3x/10; // taiam ultima cifra pt a o adauga pe urmatoarea

}

cout<<"Produsul cifrelor mai mari decat 5 ale  numarului"<< x<<"este "<<p2<<endl;

//4.numarul cifrelor impare si divizibile cu 3

/*pt aceasta vom avea nevoie de o variabila in care sa numaram si pe care o initalizam cu 0 la inceput */

int ct=0; //ct este un contor care va creste daca conditiile vor fi indeplinite

int c4x=x;

while(c4x) // expresie echivalenta cu while(c4x!=0)

{ int uc=c4x%10;

 if( uc%2==1 && uc%3==0) /* daca restul impartirii lui 2 la uc e 1 inseamna ca cifra e impara, iar daca restul impartirii lui uc la 3 e 0 => cifra e divizibila cu 3 */

{ct++;} //crestem contorul cu 1 dc conditiile sunt indeplinite

c4x=c4x/10;   // taiam ultima cifra pt a o verifica pe urmatoarea

}

cout<<"Numarul cifrelor impare si divizbile cu 3 ale  numarului"<< x<<"este "<<ct<<endl;

return 0;

}

Explicație: