301
Cerinţa
Se dă un şir cu n
elemente, numere naturale. Folosind metoda Divide et Impera să se verifice dacă în şir există elemente impare.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi cele n
elemente ale şirului, separate prin spaţii.
Date de ieşire
Programul afișează pe ecran mesajul DA
, dacă şirul conţine elemente impare, respectiv NU
în caz contrar.
Restricţii şi precizări
1 ≤ n ≤ 100
- elementele şirului vor fi mai mici decât
10000
Exemplu
Date de intrare
5 2 8 6 10 8
Date de ieșire
NU
#include <bits/stdc++.h> using namespace std; bool exista_impar(int a[], int st, int dr){ if(st == dr) return a[st] % 2 == 1; else{ int mij = (st + dr) / 2; return exista_impar(a, st, mij) || exista_impar(a, mij + 1, dr); } } int main() { int n, a[1001]; cin >> n; for(int i = 1; i <= n; ++i) cin >> a[i]; if(exista_impar(a, 1, n)) cout << "DA"; else cout << "NU"; return 0; }
Comentarii