0068 - Cifra Maxima: Difference between revisions
mNo edit summary |
|||
Line 17: | Line 17: | ||
== 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> | <syntaxhighlight lang="python" line> | ||
Line 38: | Line 79: | ||
print("Datele sunt introduse corect.") | print("Datele sunt introduse corect.") | ||
print(f"Cea mai mare cifră a numărului {numar} este {cifra_maxima}.") | 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 | 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>
- 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>