👤

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ăspuns :

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;
}