0487 - Numarare2
Sursa: - Numarare2
Cerinţa
Se dă un vector cu n numere naturale. Să se determine câte dintre elemente au valoarea strict mai mare decât media aritmetică a elementelor vectorului.
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 C, reprezentând valoarea cerută. În cazul contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".
Restricţii şi precizări
- 1 ⩽ n ⩽ 200
- elementele vectorului vor fi cuprinse între 0 și 1.000
Exemple
Exemplul 1
- Intrare
- 5
- 5 0 2 1 4
- Ieșire
- Datele sunt introduse corect.
- 2
Explicație exemplul 1
- Media aritmetică a elementelor este 2.4. În vector sunt 2 elemente cu valoarea strict mai mare decât 2.4: 5 4
Exemplul 2
- Intrare
- 1234
- Ieșire
- Datele nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line="1">
- 0487 Numarare2
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>