0077 - Ultima Cifra Para: Difference between revisions

From Bitnami MediaWiki
Tag: Manual revert
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 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ă.
Line 16: Line 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:
Line 30: Line 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
     if ultima_cifra_para is not None:
     if ultima_cifra_para is not None:
        print("Datele sunt introduse corect.")
         print(f"Ultima cifră pară a lui {numar} este {ultima_cifra_para}.")
         print(f"Ultima cifră pară a lui {numar} este {ultima_cifra_para}.")
     else:
     else:
         print(f"Lipsește ultima cifră pară a lui {numar}.")
         print(f"Lipsește ultima cifră pară a lui {numar}.")


</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 09:25, 15 May 2023

Sursa: [1]

Cerinţa[edit | edit source]

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

Date de intrare[edit | edit source]

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

Date de ieşire[edit | edit source]

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

Restricții și precizări[edit | edit source]

  • 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[edit | edit source]

Intrare
1265
Ieșire
6


Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<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[edit | edit source]

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