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ăspunsuri la întrebare
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.