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 validare(n):

   return 0 <= int(n) < 2_000_000_000


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 = input("Introduceti un numar pozitiv si mai mic decat 2.000.000.000: ")
   if validare(numar):
       numar = int(numar)
       print("Datele introduse corespund restricțiilor impuse")
       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}.")
   else:
       print("Datele introduse nu corespund restricțiilor impuse")

</syntaxhighlight>