3665 - CMMCP: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
(3 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==
Dacă datele sunt introduse corect, pe ecran 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"'''.
== 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>
def verificare_restricții(număr1):
#3665
     #Verifică dacă numărul dat respectă restricțiile impuse.
 
     if număr1 < 0 or număr1 > 1000000000000:
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
         return False
     return True
     else:
        return True


def rezolvare_problema(număr1):
def rezolvare_problema(număr):
    maxim = 0 # inițializăm maximul cu o valoare nesemnificativă


     if număr1 == 0:
     maxim = 10 # inițializăm maximul cu 10
        maxim = 0


    # parcurgem cifrele numărului și găsim cea mai mare cifră pară
     while număr != 0:
     while număr1 != 0:
         cifră = număr % 10 # extragem ultima cifră
         if maxim == 10: # dacă nu am găsit încă nicio cifră pară, maximul primește valoarea primei cifre pare
        if cifră % 2 == 0 and cifră > maxim: # dacă este pară și mai mare decât maximul curent
            if număr1 % 2 == 0:
             maxim = cifră # actualizăm maximul
                maxim = număr1 % 10
         număr //= 10 # eliminăm ultima cifră
        else: # dacă am găsit deja o cifră pară, maximul se actualizează doar dacă găsim o cifră pară mai mare decât cea actuală
             if număr1 % 10 > maxim and număr1 % 2 == 0:
                maxim = număr1 % 10
         număr1 = număr1 // 10 # trecem la următoarea cifră


     if maxim == 10:
    return maxim
         return 10
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 maxim
         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__":
if __name__ == "__main__":
     număr1 = int(input("Introduceți numărul: "))
     numar = int(input("Introduceți numărul: "))
     if verificare_restricții(număr1):
     if verificare_restricții(numar):
         print("Datele sunt introduse corect.")
         print("Datele sunt introduse corect.")
         rezultat = rezolvare_problema(număr1)
         maxim_par = rezolvare_problema(numar)
         print("Cea mai mare cifră pară din număr este:", rezultat)
         print("Cea mai mare cifră pară a numărului este:", maxim_par)
     else:
     else:
         print("Datele nu au fost introduse corect.")
         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>

  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>