0068 - Cifra Maxima: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/68/ciframaxima] == 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...
 
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/68/ciframaxima]
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ă.
== Date de intrare ==
== Date de intrare ==
Programul va citi de la tastatură un număr natural.
Programul va citi de la tastatură un număr natural.
 
== Date de ieşire ==
 
== Date de ieșire ==
Programul va afişa pe ecran cea mai mare cifră a numărului citit.
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


== Restricții și precizări ==
*  numărul citit va fi mai mic decât 2.000.000.000
== Exemplu ==
== Exemplu ==
; Intrare
; Intrare
: 2705
:2705
; Ieșire
; Ieșire
: 7
:7


== Rezolvare ==
== 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>
# 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: "))
cifra_maxima = 0  # Inițializăm cifra maximă cu 0
# 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>

Latest revision as of 09:25, 12 May 2023

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>