0068 - Cifra Maxima

From Bitnami MediaWiki
Revision as of 09:25, 12 May 2023 by Petras.du.ioana (talk | contribs) (→‎Rezolvare)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: [1]

Cerinţa

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

Date de intrare

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

Date de ieşire

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

Restricții și precizări

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

Exemplu

Intrare
2705
Ieșire
7

Rezolvare

Rezolvare ver. 1

<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

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