Informatică, întrebare adresată de matematicianul93, 8 ani în urmă

va rog am mare nevoie de ajutor ​

Anexe:

Răspunsuri la întrebare

Răspuns de GabiAlex99
0

#include<iostream>

using namespace std;

int main()

{

   int n, cif=0, spar=0, prod=1, uc;

   cout<<"n=";cin>>n;

   while(n) {

       uc=n%10;

       if(uc%2==0) spar+=uc;

       if(uc!=0) prod*=uc;

       cif++;

       n/=10;

   }

   cout<<"Suma cifrelor pare : "<<spar<<"\n";

   cout<<"Produsul cifrelor nenule : "<<prod<<"\n";

   cout<<"Nr. de cifre : "<<cif;

}


matematicianul93: nu inteleg ce ai facut
GabiAlex99: Ce nu intelegi mai exact? In variabila cif am innumarat numarul de cifre ale lui n, in spar suma cifrelor pare, iar in prod produsul numerelor nenule. Toate astea le-am facut intr-o structura while(n) care e echivalentu' while(n!=0).. Nu ati facut programe inca? Ati facut doar pseudocod sau ce?:) Explica ce nu ai inteles..
matematicianul93: noi suntem la tipuri de algoritm care se rezolva folosind structura repetitiva cat timp
matematicianul93: la algoritm care lucreaza cu cifrele lui n
matematicianul93: poti face altfel ca sa inteleg si eu
GabiAlex99: Scuze, abia acum am vazut mesajul:)) in pseodocod nu prea ma pricep (adica cum se scrie din cod in pseudocod) asa ca doar voi incerca (nu stiu daca e bine)
n, cif, spar, prod, uc - numere intregi
cif --> 0
spar --> 0
prod --> 1
citeste n;
cat timp (n diferit de 0)
"bloc" (asta inseamna { sau },asa stiam..in cazu' asta { )
uc=n MOD 10
daca (uc MOD 2 = 0 ) spar-->spar+1
daca (uc diferit de 0) prod-->prod*uc;
cif-->cif+1;
n=n DIV 10;
bloc
scrie spar, prod, cif
GabiAlex99: Deci practic daca ultima cifra a nr n e para creste spar cu 1, daca ultima cifra e diferita de 0 prod=prod*uc (adica produs*ultima cifra) si la fiecare repetare creste nr de cifre.. pentru ca de fiecare data la repetarea structurii cat timp ai "n DIV 10" adica n se imparte la 10 si o sa fie n=catul impartirii lui n la 10. Sper ca ai inteles..
Alte întrebări interesante