0894 - CifMinMax

From Bitnami MediaWiki
Revision as of 14:10, 6 April 2023 by Cata (talk | contribs) (Pagină nouă: ==Cerinţa== 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 şi 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 reprez...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

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 şi 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

Explicație

Funcția "cifminmax" primește ca parametri un număr natural "n" și două variabile "maxim" și "minim", care sunt inițializate cu valoarea 0 și, respectiv, 9. În continuare, se parcurg cifrele numărului "n" primit ca parametru cu ajutorul unui while loop, prin extragerea cifrei curente cu operatorul modulo și împărțirea ulterioară la 10. Dacă cifra curentă este mai mare decat "maxim", valoarea variabilei "maxim" este actualizată cu aceasta, iar dacă este mai mică decât "minim", valoarea variabilei "minim" este actualizată cu aceasta. La final, funcția returnează valorile "maxim" si "minim".

Rezolvare

<syntaxhighlight lang="python"> def validate_cifminmax(n, max_cif, min_cif):

   if n >= 2000000000:
       return False
   return True

def cifminmax(n, max_cif, min_cif):

   while n > 0:
       cif = n % 10
       if cif > max_cif:
           max_cif = cif
       if cif < min_cif:
           min_cif = cif
       n //= 10
   return max_cif, min_cif

def main():

   n = 123456789
   max_cif = -1
   min_cif = 10
   if validate_cifminmax(n, max_cif, min_cif):
       max_cif, min_cif = cifminmax(n, max_cif, min_cif)
       print("Cea mai mare cifra este:", max_cif)
       print("Cea mai mica cifra este:", min_cif)
   else:
       print("Date de intrare invalide")

if __name__ == '__main__':

   main()

</syntaxhighlight>