IN C++ ; NUMAI CU WILE sau cu IF eventual , Cifra Wellcode 470
Cerință
Se dă un număr natural N. Să se afișeze cifra Wellcode a acestuia. Cifra Wellcode se calculează făcând produsul cifrelor numărului, după care produsul cifrelor produsului și așa mai departe până când produsul obținut este o cifră.

Date de intrare
Se citește un singur număr, N, având semnificația din enunț.

Date de ieșire
Se va afișa o singură cifră, reprezentând cifra Wellcode.

Restricții
0 ≤ N ≤ 1 000 000 000

EXEMPLU : 1234 1*2*3*4=24 = 2*4 = 8
VA ROG SA EXPLICATI ! MULTUMESC !

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int main()

{ int n,cw;

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

 cw=n;

  while (cw>9)

   { cw=1;

       while (n!=0)

   {

       cw=cw*(n%10);

       n=n/10;

      }n=cw; }

  cout<<"Cifra Wellcode este "<<cw;

  return 0;

}

Explicație:

Voi retine produsul cifrelor unui numar in variabila cw;

Pentru a inmulti cifrele unui numar procedez in felul urmator:

 cw=1; // initializez cw cu 1 (element neutru la inmultire)

 while (n!=0)       //cat timp numarul este nenul (are cifre)

   {

       cw=cw*(n%10);  //extrag ultima cifra (n%10) si o inmultesc in produs (cw)

       n=n/10;   //tai cifra din numar

      }

Dupa aceasta secventa, in variabila cw voi avea produsul cifrelor lui n. Dar daca cw va avea mai mult de 1 cifra (cw>9) va trebui sa repet procedeul cu cifrele numarului cw.

Prin urmare, dau lui n valoarea cw  (n=cw;)si repet secventa de mai sus.