1150 - Verif Pare Div Imp
Cerinţa[edit | edit source]
Se dă un şir cu n
elemente, numere naturale. Folosind metoda Divide et Impera să se verifice dacă toate elementele şirului sunt pare.
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ă toate elementele şirului sunt pare, respectiv NU
în caz contrar.
Restricţii şi precizări[edit | edit source]
1 ≤ n ≤ 100
- elementele şirului vor fi mai mici decât
10000
Exemplul 1[edit | edit source]
Date de intrare
5 2 8 6 10 8
Date de ieșire
DA
Exemplul 2[edit | edit source]
Date de intrare
101
Date de ieșire
Eroare: Numărul de elemente trebuie să fie între 1 și 100.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def verificare_restrictii(n, arr):
# Verifică restricția 1: 1 ≤ n ≤ 100 if not (1 <= n <= 100): print("Eroare: Numărul de elemente trebuie să fie între 1 și 100.") return False
# Verifică restricția 2: Elementele șirului vor fi mai mici decât 10000 if any(x >= 10000 for x in arr): print("Eroare: Elementele șirului trebuie să fie mai mici decât 10000.") return False
return True
def toate_elementele_pare(arr, stanga, dreapta):
if stanga == dreapta: return arr[stanga] % 2 == 0
mijloc = (stanga + dreapta) // 2
# Verifică în stânga și dreapta parte_stanga_pare = toate_elementele_pare(arr, stanga, mijloc) parte_dreapta_pare = toate_elementele_pare(arr, mijloc + 1, dreapta)
# Combină rezultatele return parte_stanga_pare and parte_dreapta_pare
- Exemplu de folosire
n = int(input("Introduceti numarul de elemente: "))
- Iesirea dacă restricțiile nu sunt îndeplinite
if not (1 <= n <= 100):
print("Eroare: Numărul de elemente trebuie să fie între 1 și 100.") exit()
arr = list(map(int, input("Introduceti elementele separate prin spatii: ").split()))
- Iesirea dacă restricțiile nu sunt îndeplinite
if any(x >= 10000 for x in arr):
print("Eroare: Elementele șirului trebuie să fie mai mici decât 10000.") exit()
- Continuă cu verificarea dacă toate elementele sunt pare
rezultat = toate_elementele_pare(arr, 0, n - 1)
- Afișează rezultatul
if rezultat:
print("DA, toate elementele sunt pare.")
else:
print("NU, nu toate elementele sunt pare.")
</syntaxhighlight>