0824 - CifMaxRec: Difference between revisions

From Bitnami MediaWiki
mNo edit summary
No edit summary
Line 22: Line 22:


==Rezolvare==
==Rezolvare==
 
  def validare_numar(numar):
  def cifmax(numar):
     if isinstance(numar, int) and numar < 2000000000:
     if numar >= 2000000000:
         return True
         print("Datele de intrare nu corespund restricțiilor impuse.")
    return False
def cifra_maxima(numar, cifra_max=0):
    if numar < 10:
        if numar > cifra_max:
            cifra_max = numar
        return cifra_max
     else:
     else:
         str_numar = str(numar)
         cifra_curenta = numar % 10
         maxim = 0
         if cifra_curenta > cifra_max:
         for cifra in str_numar:
            cifra_max = cifra_curenta
            if int(cifra) > maxim:
         return cifra_maxima(numar // 10, cifra_max)
                maxim = int(cifra)
def main():
         return maxim
    numar = input("Introduceti un numar: ")
print(cifmax(2050)# va afișa pe ecran <code>5</code> <br>
    if validare_numar(numar):
print(cifmax(209074536153)) # va afișa pe ecran <code>9</code>
        cifra_max = cifra_maxima(numar)
         print(f"Cifra maxima a numarului {numar} este {cifra_max}.")
    else:
        print("Numarul introdus nu este valid.")
  if __name__ == '__main__':
    main()

Revision as of 09:19, 25 March 2023

Cerința

Să se scrie o funcție python care să returneze cifra maximă a unui număr natural transmis ca parametru.

Date de intrare

Se va introduce de la tastatură un număr natural care va fi transmis ca perimetru

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.".

Restricții și precizări

  • 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

Exemplu

cifmax(2050) este 5
cifmax(209074536153) este 9

Rezolvare

def validare_numar(numar):
   if isinstance(numar, int) and numar < 2000000000:
       return True
   return False
def cifra_maxima(numar, cifra_max=0):
   if numar < 10:
       if numar > cifra_max:
           cifra_max = numar
       return cifra_max
   else:
       cifra_curenta = numar % 10
       if cifra_curenta > cifra_max:
           cifra_max = cifra_curenta
       return cifra_maxima(numar // 10, cifra_max)
def main():
   numar = input("Introduceti un numar: ")
   if validare_numar(numar):
       cifra_max = cifra_maxima(numar)
       print(f"Cifra maxima a numarului {numar} este {cifra_max}.")
   else:
       print("Numarul introdus nu este valid.")
if __name__ == '__main__':
   main()