0077 - Ultima Cifra Para

From Bitnami MediaWiki

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

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

  1. Citim numărul de la tastatură

numar = int(input("Introduceți un număr natural: "))

  1. 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}.")

</syntaxhighlight>