3665 - CMMCP: Difference between revisions

From Bitnami MediaWiki
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:
Sursa: [https://www.pbinfo.ro/probleme/3665/cmmcp]
Sursă: [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 ==
==Cerința==
Programul citește de la tastatură numărul '''numar'''.
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.")


== Date de ieșire ==
Programul va afișa pe ecran valoarea cerută.




== Restricții și precizări ==
*  0 &les; numar &les; 1.000.000.000
== Exemplu ==
; Intrare
: 1440;
; Ieșire
: 4


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