3665 - CMMCP

From Bitnami MediaWiki
Revision as of 05:48, 28 April 2023 by Tamas Claudia (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>

  1. 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>