3665 - CMMCP: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Fără descriere a modificării
Linia 6: Linia 6:
Programul citește de la tastatură numărul '''număr1'''.
Programul citește de la tastatură numărul '''număr1'''.
==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 valoarea cerută. în caz contrar, se va afișa pe ecran. '''"Datele nu au fost introduse corect"'''.
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"'''.
== 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
Linia 18: Linia 18:


<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
număr1 = int(input("Introduceți numărul: ")) # citim numărul de la tastatură
def verificare_restricții(număr1):
    #Verifică dacă numărul dat respectă restricțiile impuse.
    if număr1 < 0 or număr1 > 1000000000000:
        return False
    return True


# verificăm restricțiile impuse asupra numărului
def rezolvare_problema(număr1):
if număr1 < 0 or număr1 > 1000000000000:
    print("Datele nu au fost introduse corect")
else:
     maxim = 0 # inițializăm maximul cu o valoare nesemnificativă
     maxim = 0 # inițializăm maximul cu o valoare nesemnificativă


Linia 40: Linia 41:


     if maxim == 10:
     if maxim == 10:
         print("Numărul nu conține cifre pare")
         return 10
     else:
     else:
         print("Cea mai mare cifră pară din număr este:", maxim)
         return maxim


if __name__ == "__main__":
    număr1 = int(input("Introduceți numărul: "))
    if verificare_restricții(număr1):
        print("Datele sunt introduse corect.")
        rezultat = rezolvare_problema(număr1)
        print("Cea mai mare cifră pară din număr este:", rezultat)
    else:
        print("Datele nu au fost introduse corect.")




</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 26 aprilie 2023 19:13

Sursă: [1]

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.

Date de intrare

Programul citește de la tastatură numărul număr1.

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

Restricții și precizări

  • 0 ⩽ număr1 ⩽ 1.000.000.000.000

Exemplu

Intrare
1440
Ieșire
4


Rezolvare

def verificare_restricții(număr1):
    #Verifică dacă numărul dat respectă restricțiile impuse.
    if număr1 < 0 or număr1 > 1000000000000:
        return False
    return True

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

    if număr1 == 0:
        maxim = 0

    # parcurgem cifrele numărului și găsim cea mai mare cifră pară
    while număr1 != 0:
        if maxim == 10: # dacă nu am găsit încă nicio cifră pară, maximul primește valoarea primei cifre pare
            if număr1 % 2 == 0:
                maxim = număr1 % 10
        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 10
    else:
        return maxim

if __name__ == "__main__":
    număr1 = int(input("Introduceți numărul: "))
    if verificare_restricții(număr1):
        print("Datele sunt introduse corect.")
        rezultat = rezolvare_problema(număr1)
        print("Cea mai mare cifră pară din număr este:", rezultat)
    else:
        print("Datele nu au fost introduse corect.")