3665 - CMMCP: Difference between revisions
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Sursă: [https://www.pbinfo.ro/probleme/3665/cmmcp] | |||
==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"'''. | |||
== Restricții și precizări == | == Restricții și precizări == | ||
* 0 ⩽ | * 0 ⩽ număr1 ⩽ 1.000.000.000.000 | ||
== Exemplu == | == Exemplu == | ||
; Intrare | ; Intrare | ||
: 1440 | : 1440 | ||
; Ieșire | ; Ieșire | ||
: 4 | : Cea mai mare cifră pară a numărului este: 4 | ||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <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): | |||
while | maxim = 10 # inițializăm maximul cu 10 | ||
if | while număr != 0: | ||
maxim = | 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: | else: | ||
return True | |||
maxim = | |||
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> | </syntaxhighlight> |
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>