4318 - Cifre 20

From Bitnami MediaWiki

Sursa: [1]

Cerinţa[edit | edit source]

Se dă un șir cu un numar dat de elemente, numere naturale. Să se determine câte elemente ale șirului au număr impar de cifre.

Date de intrare[edit | edit source]

Programul va citi de la tastatură numărul, apoi elementele șirului.

Date de ieşire[edit | edit source]

Programul va afişa pe ecran valoarea cerută.

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

  • numar ≤ 100
  • elementele șirului sunt mai mici decât 10^9

Exemplu[edit | edit source]

Intrare
5
 18 215 147 1256 7
Ieșire
3


Explicatie[edit | edit source]

Elementele șirului cu număr impar de cifre sunt: 215 147 7.

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line>

def numar_impar_cifre(numar):

   """
   Verifică dacă un număr are un număr impar de cifre.
   :param numar: Numărul de verificat.
   :return: True dacă numărul are un număr impar de cifre, False în caz contrar.
   """
   numar_cifre = len(str(numar))
   return numar_cifre % 2 == 1


def determina_numar_elemente_numar_impar_cifre(sir):

   """
   Determină numărul de elemente dintr-un șir care au un număr impar de cifre.
   :param sir: Șirul de numere.
   :return: Numărul de elemente cu număr impar de cifre.
   """
   contor = 0
   for element in sir:
       if numar_impar_cifre(element):
           contor += 1
   return contor


def citeste_sir_elemente(numar):

   """
   Citește elementele unui șir de numere de la tastatură.
   :param numar: Numărul de elemente din șir.
   :return: Șirul de numere citite.
   """
   sir = []
   for i in range(numar):
       while True:
           try:
               element = int(input(f"Introduceți elementul {i + 1}: "))
               if element <= 0:
                   print("Elementul trebuie să fie un număr natural pozitiv!")
                   continue
               break
           except ValueError:
               print("Elementul trebuie să fie un număr natural pozitiv!")
       sir.append(element)
   return sir


def main():

   # Citim numărul de elemente din șir și validăm inputul
   while True:
       try:
           numar = int(input("Introduceți numărul de elemente din șir: "))
           if numar <= 0:
               print("Numărul de elemente trebuie să fie un număr pozitiv!")
               continue
           break
       except ValueError:
           print("Numărul de elemente trebuie să fie un număr întreg pozitiv!")
   # Citim elementele șirului
   sir = citeste_sir_elemente(numar)
   # Determinăm numărul de elemente cu număr impar de cifre
   numar_elemente_numar_impar_cifre = determina_numar_elemente_numar_impar_cifre(sir)
   # Afișăm rezultatul
   print("Datele introduse corespund restricțiilor impuse.")
   print(f"Numărul de elemente cu număr impar de cifre este: {numar_elemente_numar_impar_cifre}")


if __name__ == "__main__":

   main()


</syntaxhighlight>

Rezolvare ver. 2[edit | edit source]

<syntaxhighlight lang="python" line>

  1. Citim numărul de elemente din șir și validăm inputul

while True:

   try:
       numar = int(input("Introduceți numărul de elemente din șir: "))
       if numar <= 0:
           print("Numărul de elemente trebuie să fie un număr pozitiv!")
           continue
       break
   except ValueError:
       print("Numărul de elemente trebuie să fie un număr întreg pozitiv!")
  1. Inițializăm un contor pentru numărul de elemente cu număr impar de cifre

contor = 0

  1. Iterăm prin fiecare element din șir și verificăm dacă are număr impar de cifre

for i in range(numar):

   # Citim elementul și validăm inputul
   while True:
       try:
           element = int(input(f"Introduceți elementul {i+1}: "))
           if element <= 0:
               print("Elementul trebuie să fie un număr natural pozitiv!")
               continue
           break
       except ValueError:
           print("Elementul trebuie să fie un număr natural pozitiv!")
   
   # Numărăm cifrele elementului și verificăm dacă este impar
   numar_cifre = len(str(element))
   if numar_cifre % 2 == 1:
       contor += 1
  1. Afișăm validarea inputului și numărul de elemente cu număr impar de cifre

print("Datele introduse corespund restricțiilor impuse.") print(f"Numărul de elemente cu număr impar de cifre este: {contor}")


</syntaxhighlight>