3665 - CMMCP: Difference between revisions
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/3665/cmmcp] Se dă un număr natural. == Cerința == Se dă un număr natural '''numar'''. 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 == Programul citește de la tastatură numărul '''numar'''. == Date de ieșire == Programul va afișa pe ecran valoarea cerută. == Restricții și precizări == * 0 ⩽ numar ⩽ 1.000.000.000 == Exemplu == ; Intrar... |
No edit summary |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Sursă: [https://www.pbinfo.ro/probleme/3665/cmmcp] | |||
== Date de intrare == | ==Cerința== | ||
Programul citește de la tastatură numărul ''' | 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== | |||
Programul citește de la tastatură numărul '''n'''. | |||
==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 == | |||
* 0 ⩽ număr1 ⩽ 1.000.000.000.000 | |||
== Exemplu == | |||
; Intrare | |||
: 1440 | |||
; Ieșire | |||
: Cea mai mare cifră pară a numărului este: 4 | |||
<br> | |||
== Rezolvare == | |||
<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> |
Latest revision as of 05:48, 28 April 2023
Sursă: [1]
Cerința
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
Programul citește de la tastatură numărul n.
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
- 0 ⩽ număr1 ⩽ 1.000.000.000.000
Exemplu
- Intrare
- 1440
- Ieșire
- Cea mai mare cifră pară a numărului este: 4
Rezolvare
<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>