0068 - Cifra Maxima: Difference between revisions
Ștergerea conținutului paginii Tag: Blanking |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
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 | |||
: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> | |||
# 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>
- 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>