0068 - Cifra Maxima

From Bitnami MediaWiki

Sursa: [1]

Cerinţa[edit | edit source]

Să se scrie un program care să determine cea mai mare cifră a unui număr natural citit de la tastatură.

Date de intrare[edit | edit source]

Programul va citi de la tastatură un număr natural.

Date de ieşire[edit | edit source]

Programul va afişa pe ecran cea mai mare cifră a numărului citit.

Restricții și precizări[edit | edit source]

  • numărul citit va fi mai mic decât 2.000.000.000

Exemplu[edit | edit source]

Intrare
2705
Ieșire
7

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line>

def citeste_numar_natural():

   """
   Citeste un numar natural de la tastatura si il returneaza.
   """
   while True:
       try:
           numar = int(input("Introduceti un numar natural: "))
           if numar >= 0:
               return numar
           else:
               print("Numarul introdus trebuie sa fie un numar natural.")
       except ValueError:
           print("Numarul introdus trebuie sa fie un numar natural.")

def determina_cifra_maxima(numar):

   """
   Determina cifra maxima dintr-un numar.
   """
   cifra_maxima = 0
   for cifra in str(numar):
       cifra_int = int(cifra)
       if cifra_int > cifra_maxima:
           cifra_maxima = cifra_int
   return cifra_maxima

if __name__ == '__main__':

   # Apelam functiile pentru a rula programul
   numar = citeste_numar_natural()
   cifra_maxima = determina_cifra_maxima(numar)
   # Afisam rezultatul
   print("Datele sunt introduse corect.")
   print(f"Cea mai mare cifra a numarului {numar} este {cifra_maxima}.")


</syntaxhighlight>

Rezolvare ver. 2[edit | edit source]

<syntaxhighlight lang="python" line>

  1. Citim un număr natural de la tastatură și verificăm că este format doar din cifre

numar = int(input("Introduceți un număr natural: ")) # Citim numărul și îl convertim în întreg

  1. Validăm că numărul introdus este un număr natural

while not isinstance(numar, int) or numar < 0:

   print("Numărul introdus trebuie să fie un număr natural.")
   numar = int(input("Introduceți un număr natural: "))

cifra_maxima = 0 # Inițializăm cifra maximă cu 0

  1. Parcurgem cifrele numărului folosind o buclă for

for cifra in str(numar): # Convertim numărul în șir de caractere și parcurgem cifrele

   cifra_int = int(cifra)  # Convertim cifra la întreg pentru a o putea compara cu cifra_maxima
   if cifra_int > cifra_maxima:  # Verificăm dacă cifra curentă este mai mare decât cifra maximă găsită până acum
       cifra_maxima = cifra_int  # Dacă da, actualizăm cifra maximă
  1. Afișăm cifra maximă găsită

print("Datele sunt introduse corect.") print(f"Cea mai mare cifră a numărului {numar} este {cifra_maxima}.")

</syntaxhighlight>