0077 - Ultima Cifra Para: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
 
(Nu s-au afișat 3 versiuni intermediare efectuate de același utilizator)
Linia 1: Linia 1:
Sursa: [https://www.pbinfo.ro/probleme/77/ultimacifrapara]
== Cerinţa ==
== Cerinţa ==
Să se scrie un program care să determine ultima cifră pară a unui număr natural citit de la tastatură.
Să se scrie un program care să determine ultima cifră pară a unui număr natural citit de la tastatură.
Linia 16: Linia 17:


== Rezolvare ==
== Rezolvare ==
=== Rezolvare ver. 1 ===
<syntaxhighlight lang="python" line>
def determina_ultima_cifra_para(numar):
    # Inițializăm o variabilă care va reține ultima cifră pară
    ultima_cifra_para = None
    # Parcurgem cifrele numărului de la dreapta la stânga
    while numar > 0:
        cifra = numar % 10
        if cifra % 2 == 0:  # Dacă cifra este pară
            ultima_cifra_para = cifra
            break  # Oprim căutarea, am găsit ultima cifră pară
        numar = numar // 10
    return ultima_cifra_para
def main():
    # Citim numărul de la tastatură
    numar = int(input("Introduceți un număr natural: "))
    # Verificăm dacă numărul este valid
    if numar <= 0:
        print("Numărul introdus nu este valid. Introduceți un număr natural.")
    else:
        # Determinăm ultima cifră pară
        ultima_cifra_para = determina_ultima_cifra_para(numar)
        # Afisăm rezultatul
        if ultima_cifra_para is not None:
            print("Datele sunt introduse corect.")
            print(f"Ultima cifră pară a lui {numar} este {ultima_cifra_para}.")
        else:
            print(f"Lipsește ultima cifră pară a lui {numar}.")
if __name__ == "__main__":
    main()
</syntaxhighlight>
=== Rezolvare ver. 2 ===


<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>


# Citim numărul de la tastatură
# Citim numărul de la tastatură
numar = input("Introduceți un număr natural: ")
numar = int(input("Introduceți un număr natural: "))


# Verificăm dacă numărul este valid
# Verificăm dacă numărul este valid
if not numar.isdigit():
if numar <= 0:
     print("Numărul introdus nu este valid. Introduceți un număr natural.")
     print("Numărul introdus nu este valid. Introduceți un număr natural.")
else:
else:
Linia 30: Linia 73:


     # Parcurgem cifrele numărului de la dreapta la stânga
     # Parcurgem cifrele numărului de la dreapta la stânga
     for cifra in reversed(numar):
     while numar > 0:
         cifra = int(cifra)
         cifra = numar % 10
         if cifra % 2 == 0: # Dacă cifra este pară
         if cifra % 2 == 0: # Dacă cifra este pară
             ultima_cifra_para = cifra
             ultima_cifra_para = cifra
             break # Oprim căutarea, am găsit ultima cifră pară
             break # Oprim căutarea, am găsit ultima cifră pară
        numar = numar // 10


     # Afisăm rezultatul
     # Afisăm rezultatul
Linia 42: Linia 86:
     else:
     else:
         print(f"Lipsește ultima cifră pară a lui {numar}.")
         print(f"Lipsește ultima cifră pară a lui {numar}.")


</syntaxhighlight>
</syntaxhighlight>

Versiunea curentă din 15 mai 2023 09:25

Sursa: [1]

Cerinţa

Să se scrie un program care să determine ultima cifră pară a unui număr natural citit de la tastatură.

Date de intrare

Programul va citi de la tastatură un număr natural.

Date de ieşire

Programul va afişa pe ecran ultima cifră pară a numărului citit.

Restricții și precizări

  • numărul citit va fi mai mic decât 2.000.000.000
  • dacă numărul citit nu conține cifre pare se va afișa valoarea -1

Exemplu

Intrare
1265
Ieșire
6


Rezolvare

Rezolvare ver. 1

def determina_ultima_cifra_para(numar):
    # Inițializăm o variabilă care va reține ultima cifră pară
    ultima_cifra_para = None

    # Parcurgem cifrele numărului de la dreapta la stânga
    while numar > 0:
        cifra = numar % 10
        if cifra % 2 == 0:  # Dacă cifra este pară
            ultima_cifra_para = cifra
            break  # Oprim căutarea, am găsit ultima cifră pară
        numar = numar // 10

    return ultima_cifra_para

def main():
    # Citim numărul de la tastatură
    numar = int(input("Introduceți un număr natural: "))

    # Verificăm dacă numărul este valid
    if numar <= 0:
        print("Numărul introdus nu este valid. Introduceți un număr natural.")
    else:
        # Determinăm ultima cifră pară
        ultima_cifra_para = determina_ultima_cifra_para(numar)

        # Afisăm rezultatul
        if ultima_cifra_para is not None:
            print("Datele sunt introduse corect.")
            print(f"Ultima cifră pară a lui {numar} este {ultima_cifra_para}.")
        else:
            print(f"Lipsește ultima cifră pară a lui {numar}.")

if __name__ == "__main__":
    main()

Rezolvare ver. 2

# Citim numărul de la tastatură
numar = int(input("Introduceți un număr natural: "))

# Verificăm dacă numărul este valid
if numar <= 0:
    print("Numărul introdus nu este valid. Introduceți un număr natural.")
else:
    # Inițializăm o variabilă care va reține ultima cifră pară
    ultima_cifra_para = None

    # Parcurgem cifrele numărului de la dreapta la stânga
    while numar > 0:
        cifra = numar % 10
        if cifra % 2 == 0:  # Dacă cifra este pară
            ultima_cifra_para = cifra
            break  # Oprim căutarea, am găsit ultima cifră pară
        numar = numar // 10

    # Afisăm rezultatul
    if ultima_cifra_para is not None:
        print("Datele sunt introduse corect.")
        print(f"Ultima cifră pară a lui {numar} este {ultima_cifra_para}.")
    else:
        print(f"Lipsește ultima cifră pară a lui {numar}.")