0068 - Cifra Maxima: Difference between revisions

From Bitnami MediaWiki
Am creat de la zero.
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/68/ciframaxima]
== Cerinţa ==
== Cerinţa ==
Să se scrie un program care să determine cea mai mare cifră a unui număr natural citit de la tastatură.
Să se scrie un program care să determine cea mai mare cifră a unui număr natural citit de la tastatură.
Line 15: Line 16:


== Rezolvare ==
== Rezolvare ==
=== Rezolvare ver. 1 ===
=== Rezolvare ver. 1 ===
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>


numar = input("Introduceți un număr natural: ")
def citeste_numar_natural():
cifra_maxima = 0
    """
    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>
 
# 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
 
# 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: "))


for cifra in numar:
cifra_maxima = 0  # Inițializăm cifra maximă cu 0
    cifra_int = int(cifra)
    if cifra_int > cifra_maxima:
        cifra_maxima = cifra_int


print(f"Cea mai mare cifră a numărului {numar} este {maxim}.")
# 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ă


# 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>
</syntaxhighlight>

Latest revision as of 09:25, 12 May 2023

Sursa: [1]

Cerinţa[edit]

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]

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

Date de ieşire[edit]

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

Restricții și precizări[edit]

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

Exemplu[edit]

Intrare
2705
Ieșire
7

Rezolvare[edit]

Rezolvare ver. 1[edit]

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

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