Informatică, întrebare adresată de Razvan111, 9 ani în urmă

Salut!
As avea nevoie de putin ajutor la o problema de informatica. Problema suna cam asa:
Se
citeşte numărul intreg  n. Să se afișeze
cea mai mare cifră a numărului n. 
Exemplu:
n=14322=>4
As dori o rezolvare dar si o explicatie (in limbaj pseudocod)!
Multumesc anticipat!

Răspunsuri la întrebare

Răspuns de OanaRoxana17
1
intreg n, cmax;
citeste n;
cmax <- 0;
cat timp (n \neq 0) executa
     daca (cmax < n mod 10)
          cmax <- n mod 10;
     n <- n div 10;
scrie cmax;

Acest algoritm verifica daca fiecare cifra a numarului n este mai mare decat cmax (cifra maxima), care are valoarea initiala 0. Cat timp n este diferit de 0 se executa: daca cmax este mai mica decat ultima cifra a lui n, atunci cmax ia valoarea ultimei cifre a lui n, n ramanand apoi cu o cifra in minus ( n devine n div 10, ex: daca n ar fi fost 1234, n ar fi ramas 123). Astfel se verifica daca cmax este mai mare sau mai mica decat ultima cifra a lui n, in cazul in care este mai mare, cmax ia valoarea ultimei cifre, iar in cazul in care cmax este mai mica, aceasta isi pastreaza valoarea anterioara. Fiecare executie se termina cu o "tăiere" a ultimei cifre a lui n, pentru ca urmatoarea executie sa verifice pentru urmatoarea ultimă cifra a lui n, in acest mod verificandu-se pentru toate cifrele lui n. In final, cand n va avea o singura cifra si se va executa "n <- n div 10", n va deveni 0, astfel terminandu-se ciclul instructiunii repetitive "cat timp ... executa" si afisandu-se valoarea finala a cmax.



Alte întrebări interesante