0864 - CifMinMax

From Bitnami MediaWiki

Cerință

Să se scrie o funcție Python care să determine cea mai mare și cea mai mică cifră a unui număr natural transmis ca parametru. Funcția va întoarce rezultatele prin intermediul unor parametri de ieşire.

Restricții de precizări

  • Numele funcției va fi cifminmax
  • Funcția va avea trei parametri: primul parametru reprezintă numărul pentru care se calculează valorile cerute; al doilea parametru va reprezenta cifra maximă, iar al treilea va reprezenta cifra minimă
  • numărul pentru care se calculează cele doua valori va fi mai mic decât 2.000.000.000

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.


Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1">

def cifminmax(numar, cifra_maxima, cifra_minima):

   cifra_maxima = 0
   cifra_minima = 9
   
   while numar > 0:
       cifra_curenta = numar % 10
       
       if cifra_curenta > cifra_maxima:
           cifra_maxima = cifra_curenta
       
       if cifra_curenta < cifra_minima:
           cifra_minima = cifra_curenta
       
       numar //= 10
   
   return cifra_maxima, cifra_minima


if __name__ == '__main__':

   numar = int(input("Introduceti un numar pozitiv si mai mic decat 2.000.000.000: "))
   
   if numar <= 0 or numar >= 2000000000:
       print("Numarul trebuie sa fie pozitiv si mai mic decat 2.000.000.000.")
   else:
       cifra_maxima, cifra_minima = cifminmax(numar, 0, 9)
       print(f"Cea mai mare cifra a numarului {numar} este {cifra_maxima}.")
       print(f"Cea mai mica cifra a numarului {numar} este {cifra_minima}.")


</syntaxhighlight>