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

Se dă un număr natural N mai mare sau egal cu 0. Să se afișeze câte cifre are. Exemplu: 4321 Se va afișa 4.

#include
using namespace std;

int main() {
int N;
cin >> N;
int numar_cifre = 0;
if (N == 0) {
// Daca numarul are valoarea 0 de la inceput, consideram ca are o cifra
numar_cifre = 1;
}
while (N > 0) {
++numar_cifre;
N = N / 10; // eliminam ultima cifra
}
cout << numar_cifre;
return 0;
}




#intrare în while valoarea lui N valoarea lui numar_cifre (iar aici ,acest exem-
1 432 1 plu . nu il inteleg . multumesc
2 43 2
3 4 3
4 0 4



După cea de-a 4-a intrare în while, N devine 0, condiția din while nu mai e îndeplinită, iar în consolă se va afișa valoarea 4.

Răspunsuri la întrebare

Răspuns de thet0mmy1407
0

Explicație:

Daca stai sa iei mo-ta-mo ce scrie acolo, o sa vezi ca al tau "numar_cifre" initial este 0.

Sa zicem ca trecem peste if si ajungem la while.

numar_cifre primeste valoarea 1, apoi nr primeste valoarea 432.

Ne intrebam din nou: Este nr (in cazul nostru 432) mai mare decat 0? DA

numar_cifre primeste valoarea 2, apoi nr primeste valoarea 43.

Ne intrebam din nou: Este nr (in cazul nostru 43) mai mare decat 0? DA

numar_cifre primeste valoarea 3, apoi nr primeste valoarea 4.

Ne intrebam din nou: Este nr (in cazul nostru 4) mai mare decat 0? DA

numar_cifre primeste valoarea 4, apoi nr primeste valoarea 0.

Ne intrebam din nou: Este nr (in cazul nostru 0) mai mare decat 0? NU

Parasim while si afisam numar_cifre, adica 4.

Sper ca ai inteles explicatia.

Alte întrebări interesante