0491 - Suma2

From Bitnami MediaWiki
Revision as of 17:36, 15 March 2023 by Csatari Mălina (talk | contribs) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/491/suma2 - 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>

  1. 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>