3665 - CMMCP: Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
==Cerința== | ==Cerința== | ||
Se dă un număr natural ''' | Se dă un număr natural '''n'''. Determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are cifre pare se va afişa numărul 10. | ||
==Date de intrare== | ==Date de intrare== | ||
Programul citește de la tastatură numărul ''' | Programul citește de la tastatură numărul '''n'''. | ||
==Date de ieșire== | ==Date de ieșire== | ||
Dacă datele sunt introduse corect, se va afișa '''"Datele sunt introduse corect."''', apoi se va afișa pe ecran cea mai mare cifră pară a numărului introdus. În caz contrar, se va afișa pe ecran. '''"Datele nu au fost introduse corect"'''. | Dacă datele sunt introduse corect, se va afișa '''"Datele sunt introduse corect."''', apoi se va afișa pe ecran cea mai mare cifră pară a numărului introdus. În caz contrar, se va afișa pe ecran. '''"Datele nu au fost introduse corect"'''. |
Latest revision as of 05:48, 28 April 2023
Sursă: [1]
Cerința[edit | edit source]
Se dă un număr natural n. Determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are cifre pare se va afişa numărul 10.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, se va afișa "Datele sunt introduse corect.", apoi se va afișa pe ecran cea mai mare cifră pară a numărului introdus. În caz contrar, se va afișa pe ecran. "Datele nu au fost introduse corect".
Restricții și precizări[edit | edit source]
- 0 ⩽ număr1 ⩽ 1.000.000.000.000
Exemplu[edit | edit source]
- Intrare
- 1440
- Ieșire
- Cea mai mare cifră pară a numărului este: 4
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 3665
def verificare_restricții(număr):
#Verifică dacă numărul este între 0 și 1.000.000.000.000
if număr < 0 or număr > 1000000000000: return False else: return True
def rezolvare_problema(număr):
maxim = 10 # inițializăm maximul cu 10
while număr != 0: cifră = număr % 10 # extragem ultima cifră if cifră % 2 == 0 and cifră > maxim: # dacă este pară și mai mare decât maximul curent maxim = cifră # actualizăm maximul număr //= 10 # eliminăm ultima cifră
return maxim
def verificare_restricții(numar):
# Verifică dacă numărul este între 0 și 1.000.000.000.000 if numar < 0 or numar > 1000000000000: return False else: return True
def rezolvare_problema(numar):
maxim = -1 # inițializăm maximul cu -1 pentru a putea verifica dacă am găsit vreo cifră pară while numar != 0: cifra = numar % 10 # extragem ultima cifră if cifra % 2 == 0 and cifra > maxim: # dacă este pară și mai mare decât maximul curent maxim = cifra # actualizăm maximul numar //= 10 # eliminăm ultima cifră if maxim == -1: # dacă nu am găsit vreo cifră pară, setăm maximul la 10 maxim = 10 return maxim
if __name__ == "__main__":
numar = int(input("Introduceți numărul: ")) if verificare_restricții(numar): print("Datele sunt introduse corect.") maxim_par = rezolvare_problema(numar) print("Cea mai mare cifră pară a numărului este:", maxim_par) else: print("Datele nu au fost introduse corect.")
</syntaxhighlight>