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

Help!
Cineva cu bunăvoință care mă poate ajuta și explică cum poți rezerva această problemă? Mulțumesc anticipat!

Cerință
Se dă un număr natural N. Să se afișeze produsul acestuia.
Produsul 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
Exemple
Date de intrare Date de ieșire
1234 8​​


alexmis1311: Ce limbaj?
mariadani96: În C++

Răspunsuri la întrebare

Răspuns de OiLoveYouO
1

Răspuns:

#include<iostream>

using namespace std;

int N, c, p;

int main()

{

cin >> N;

while (N/10 != 0) { /*cand obtinem N cifra (N<10) ne oprim*/

p = 1; /*produsul cifrelor*/

while (N != 0) {

c = N%10; /*calculam ultima cifra a lui N*/

p = p*c; /*in p se calculeaza produsul cifrelor*/

N = N/10;

}

N = p; /*N ia valoarea lui p, adica produsul cifrelor sale*/

}

cout << N;

return 0;

}

Explicație:

Impunem conditia ca algoritmul sa se desfasoare cat timp N nu este cifra (N>10). Se calculeaza produsul cifrelor lui N, iar apoi lui N i se atribuie aceasta valoare. Daca produsul cifrelor e la randu-i format din mai multe cifre (mai mult de una) algoritmul se reia, noul numar N fiind p. La final se obtine N cifra si se afiseaza.

N=1234

1*2*3*4=24

2*4=8

N=536

5*3*6=90

9*0=0

N=14387

1*4*3*8*7=672

6*7*2=84

8*4=32

3*2=6

Anexe:

mariadani96: Mulțumesc mult!
OiLoveYouO: cu drag ^^
Alte întrebări interesante