0491 - Suma2
Sursa: - Suma2
Cerinţa
Se citește un vector cu n elemente, numere naturale. Să se determine suma valorilor elementelor cuprinse între primul și ultimul element par al vectorului, inclusiv acestea.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou va afișa numărul S, reprezentând suma calculată. Dacă în vector nu există niciun element par, în loc de suma S se va afișa "Nu există niciun număr par.". În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".
Restricţii şi precizări
- 1 ⩽ n ⩽ 1.000
- elementele vectorului vor fi mai mici decât 100.000
Exemple
Exemplul 1
- Intrare
- 5
- 7 6 1 2 8
- Ieșire
- Datele sunt introduse corect.
- 17
Explicație exemplul 1
- 17 = 6 + 1 + 2 + 8
Exemplul 2
- Intrare
- 6
- 1 2 5 7 9 11
- Ieșire
- Datele sunt introduse corect.
- 2
Explicație exemplul 2
- Deși există doar un element par în vector, el este și primul și ultimul, așadar rezultatul va fi 2.
Exemplul 3
- Intrare
- 3
- 3 5 7
- Ieșire
- Datele sunt introduse corect.
- Nu există niciun număr par.
Exemplul 4
- Intrare
- 1234
- Ieșire
- Datele nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line>
- 0491 - Suma2
def suma_elem_dintre_primul_elem_par_si_ultimul(vector, n):
a, b = -1, -1 for i in range(n): if vector[i] % 2 == 0: if a == -1: a = i b = i if a != -1: S = sum(vector[a:b + 1]) print(S) else: print("Nu există niciun număr par.")
def citire_conform_restrictiilor():
n = int(input()) if n < 1 or n > 1000: print("Datele nu corespund restricțiilor impuse.") exit() vector = list(map(int, input().split())) for x in vector: if x >= 100000: print("Datele nu corespund restricțiilor impuse.") exit() if n != len(vector): print("Datele nu corespund restricțiilor impuse.") exit() print("Datele sunt introduse corect.") return vector, n
if __name__ == '__main__':
vector, n = citire_conform_restrictiilor() suma_elem_dintre_primul_elem_par_si_ultimul(vector, n)
</syntaxhighlight>