0487 - Numarare2: Difference between revisions
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/487/numarare2 - 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: '... |
|||
Line 30: | Line 30: | ||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line="1"> | ||
# 0487 | # 0487 Numarare2 | ||
def suma_elem_dintre_primul_elem_par_si_ultimul(vector, n): | def suma_elem_dintre_primul_elem_par_si_ultimul(vector, n): | ||
a, b = -1, -1 | a, b = -1, -1 |
Revision as of 17:51, 15 March 2023
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>