4318 - Cifre 20
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>
- 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!")
- Inițializăm un contor pentru numărul de elemente cu număr impar de cifre
contor = 0
- 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
- 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>