0294 – Egale Oglindit: Difference between revisions
Am creat de la zero. |
|||
Line 23: | Line 23: | ||
== Rezolvare == | == Rezolvare == | ||
=== Rezolvare ver. 1 === | |||
<syntaxhighlight lang="python" line> | |||
def valideaza_numar_intreg_pozitiv(mesaj): | |||
while True: | |||
try: | |||
valoare = int(input(mesaj)) | |||
if valoare <= 0: | |||
raise ValueError | |||
return valoare | |||
except ValueError: | |||
print("Vă rugăm introduceți un număr întreg pozitiv.") | |||
def valideaza_lista_numere_intregi_pozitive(mesaj, lungime): | |||
while True: | |||
try: | |||
valori = input(mesaj).split() | |||
valori = [int(valoare) for valoare in valori] | |||
if len(valori) != lungime or any(valoare <= 0 for valoare in valori): | |||
raise ValueError | |||
return valori | |||
except ValueError: | |||
print(f"Vă rugăm introduceți exact {lungime} numere întregi pozitive, separate prin spațiu.") | |||
def verifica_inversul_in_rest(lst): | |||
primul_element = str(lst[0]) | |||
invers_primul_element = primul_element[::-1] | |||
return invers_primul_element in [str(x) for x in lst[1:]] | |||
if __name__ == "__main__": | |||
n = valideaza_numar_intreg_pozitiv("Introduceți numărul de elemente ale șirului: ") | |||
sir = valideaza_lista_numere_intregi_pozitive("Introduceți elementele șirului, separate prin spațiu: ", n) | |||
if verifica_inversul_in_rest(sir): | |||
print("DA") | |||
else: | |||
print("NU") | |||
print("Datele au fost introduse corect.") | |||
</syntaxhighlight> | |||
=== Rezolvare ver. 2 === | |||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
Latest revision as of 09:30, 19 May 2023
Sursa: [1]
Cerinţa[edit | edit source]
Se dă un şir cu n elemente, numere naturale. Să se verifice dacă oglinditul primului element apare printre celelalte elemente ale șirului.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului, separate prin spaţii.
Date de ieșire[edit | edit source]
Programul afișează pe ecran mesajul DA, dacă există în şir elemente egale cu oglinditul primului element, respectiv NU în caz contrar.
Restricţii şi precizări[edit | edit source]
- 1 ≤ n ≤ 100
- elementele şirului vor avea cel mult 9 cifre
Exemplu[edit | edit source]
- Intrare
- 5
- 804 60 102 408 6
- Ieșire
- DA
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line>
def valideaza_numar_intreg_pozitiv(mesaj):
while True: try: valoare = int(input(mesaj)) if valoare <= 0: raise ValueError return valoare except ValueError: print("Vă rugăm introduceți un număr întreg pozitiv.")
def valideaza_lista_numere_intregi_pozitive(mesaj, lungime):
while True: try: valori = input(mesaj).split() valori = [int(valoare) for valoare in valori] if len(valori) != lungime or any(valoare <= 0 for valoare in valori): raise ValueError return valori except ValueError: print(f"Vă rugăm introduceți exact {lungime} numere întregi pozitive, separate prin spațiu.")
def verifica_inversul_in_rest(lst):
primul_element = str(lst[0]) invers_primul_element = primul_element[::-1]
return invers_primul_element in [str(x) for x in lst[1:]]
if __name__ == "__main__":
n = valideaza_numar_intreg_pozitiv("Introduceți numărul de elemente ale șirului: ")
sir = valideaza_lista_numere_intregi_pozitive("Introduceți elementele șirului, separate prin spațiu: ", n)
if verifica_inversul_in_rest(sir): print("DA") else: print("NU")
print("Datele au fost introduse corect.")
</syntaxhighlight>
Rezolvare ver. 2[edit | edit source]
<syntaxhighlight lang="python" line>
n = int(input("Introduceti numarul de elemente ale sirului: "))
- Validam ca numarul de elemente este intre 1 si 100
while n < 1 or n > 100:
n = int(input("Numarul de elemente trebuie sa fie intre 1 si 100. Incercati din nou: "))
sir = input("Introduceti elementele sirului, separate prin spatiu: ").split()
- Validam ca sirul contine exact n elemente
while len(sir) != n:
sir = input(f"Trebuie sa introduceti exact {n} elemente. Incercati din nou: ").split()
primul_element = sir[0] oglinditul_primului_element = primul_element[::-1] # Calculam oglinditul primului element
if oglinditul_primului_element in sir[1:]: # Verificam daca oglinditul apare in restul elementelor
print("DA")
else:
print("NU")
print("Datele au fost introduse corect.")
</syntaxhighlight>