4318 - Cifre 20: Difference between revisions
No edit summary |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/4318/cifre20] | |||
== Cerinţa == | == Cerinţa == | ||
Se dă un șir cu | 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 == | == Date de intrare == | ||
Programul va citi de la tastatură numărul | Programul va citi de la tastatură numărul, apoi elementele șirului. | ||
== Date de ieşire == | == Date de ieşire == | ||
Programul va afişa pe ecran valoarea cerută. | Programul va afişa pe ecran valoarea cerută. | ||
== Restricții și precizări == | == Restricții și precizări == | ||
* | * numar ≤ 100 | ||
* elementele șirului sunt mai mici decât 10^9 | * elementele șirului sunt mai mici decât 10^9 | ||
Line 15: | Line 16: | ||
; Ieșire | ; Ieșire | ||
: 3 | : 3 | ||
=== Explicatie === | === Explicatie === | ||
Elementele șirului cu număr impar de cifre sunt: 215 147 7. | Elementele șirului cu număr impar de cifre sunt: 215 147 7. | ||
Line 20: | Line 23: | ||
== Rezolvare == | == Rezolvare == | ||
=== Rezolvare ver. 1 === | |||
<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 === | |||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
Line 25: | Line 109: | ||
while True: | while True: | ||
try: | try: | ||
numar = int(input("Introduceți numărul de elemente din șir: ")) | |||
if | if numar <= 0: | ||
print(" | print("Numărul de elemente trebuie să fie un număr pozitiv!") | ||
continue | continue | ||
break | break | ||
except ValueError: | except ValueError: | ||
print(" | 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 | # Inițializăm un contor pentru numărul de elemente cu număr impar de cifre | ||
contor = 0 | contor = 0 | ||
# | # Iterăm prin fiecare element din șir și verificăm dacă are număr impar de cifre | ||
for i in range( | for i in range(numar): | ||
# Citim elementul și validăm inputul | # Citim elementul și validăm inputul | ||
while True: | while True: | ||
try: | try: | ||
element = int(input(f" | element = int(input(f"Introduceți elementul {i+1}: ")) | ||
if element <= 0: | if element <= 0: | ||
print("Elementul trebuie | print("Elementul trebuie să fie un număr natural pozitiv!") | ||
continue | continue | ||
break | break | ||
except ValueError: | except ValueError: | ||
print("Elementul trebuie | print("Elementul trebuie să fie un număr natural pozitiv!") | ||
# Numărăm cifrele elementului și verificăm dacă este impar | # Numărăm cifrele elementului și verificăm dacă este impar | ||
numar_cifre = len(str(element)) | numar_cifre = len(str(element)) | ||
Line 54: | Line 139: | ||
# Afișăm validarea inputului și numărul de elemente cu număr impar de cifre | # Afișăm validarea inputului și numărul de elemente cu număr impar de cifre | ||
print("Datele introduse corespund | print("Datele introduse corespund restricțiilor impuse.") | ||
print(f" | print(f"Numărul de elemente cu număr impar de cifre este: {contor}") | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 09:50, 15 May 2023
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>