3665 - CMMCP: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 2: Line 2:


==Cerința==
==Cerința==
Se dă un număr natural '''număr1'''. Determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are cifre pare se va afişa numărul 10.
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 '''număr1'''.
Programul citește de la tastatură numărul '''n'''.
==Date de ieșire==
==Date de ieșire==
Programul va afișa pe ecran valoarea cerută.
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 ⩽ număr1 ⩽ 1.000.000.000.000
* 0 ⩽ număr1 ⩽ 1.000.000.000.000
Line 13: Line 13:
: 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>
număr1 = int(input())
#3665
maxim = 10


if număr1 == 0:
def verificare_restricții(număr):
     maxim = 0
     #Verifică dacă numărul este între 0 și 1.000.000.000.000


while număr1 != 0:
     if număr < 0 or număr > 1000000000000:
     if maxim == 10:
         return False
         if număr1 % 2 == 0:
            maxim = număr1 % 10
     else:
     else:
         if număr1 % 10 > maxim and număr1 % 2 == 0:
        return True
             maxim = număr1 % 10
 
     număr1 = număr1 // 10
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.")
 
 


print(maxim)


</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>

  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>