0487 - Numarare2: Difference between revisions

From Bitnami MediaWiki
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 Numarare
# 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">

  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>