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

Să se scrie o funcție C++ recursivă care să returneze cifra maximă a unui număr natural transmis ca parametru.
numele funcției va fi cifmax
funcția va avea un parametru reprezentând numărul dat
numărul pentru care se calculează cifra maximă va fi mai mic decât 2.000.000.000
ex:
cifmax(2050) este 5
important:
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

Răspunsuri la întrebare

Răspuns de topnerdy
1
Da este usor 
Cea mai usoara metoda ar fi urmatoarea :
floor(log10(cifmax)) + 1;  
doar ca problema cere o functie scrisa de tine deci ai nevoie de asta :

int cifmax(int number) {   
     return (number >= 10) ? 1 + cifmax(number/10) : 1;
}
Daca nu esti familiar cu sintaxa , structura se traduce usor : daca number > 10 returneaza 1 + cifmax(number/10)  altfel returneaza 1

Opa : tu doresti cifra maxima : am citit gresit atunci faci asta :

int cifmax(int number) {   
  return
(number != 0) ? (number%10 > cifmax(number/10)  ? number%10 : cifmax(number/10)) : 0;
}

magdalena21: AntiEaglesDavids
topnerdy: nu inteleg ce reprezinta comentariul tau.
Alte întrebări interesante