0894 - CifMinMax

From Bitnami MediaWiki
Revision as of 03:52, 3 May 2023 by Cata (talk | contribs)

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

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi pe un rând nou cea mai mare . În cazul în care numărul introdus depășește limitele date, se va afișa "Numarul introdus nu este valid.", iar dacă numărul introdus nu este întreg, se va afișa "Nu ati introdus un numar intreg."

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>