0633 - paritate1: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/633/paritate1 - Paritate1] ---- == Cerinţa == Se dă un șir cu '''n''' elemente, numere naturale. Determinați diferența în valoare absolută dintre numărul de valori pare din șir și numărul de valori impare din șir. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele șirului. == Date de ieșire == Programul va afișa pe ecran numărul '''c''',...
 
mNo edit summary
Line 6: Line 6:
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele șirului.
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele șirului.
== Date de ieșire ==  
== Date de ieșire ==  
Programul va afișa pe ecran numărul '''c''', reprezentând valoarea cerută.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse sunt corecte. rezultat:", apoi se va afișa numărul c, reprezentând valoarea cerută. În caz contrar, afișati pe ecran: "Datele nu corespund restricțiilor impuse.".
== Restricţii şi precizări ==
== Restricţii şi precizări ==
* 1 ⩽ '''n''' ⩽ 1.000
* 1 ⩽ '''n''' ⩽ 1.000
* cele '''n''' numere citite vor fi mai mici decât 1.000.000.000
* cele '''n''' numere citite vor fi mai mici decât 1.000.000.000
== Exemplu ==
== Exemplu ==
===Exemplul 1===
; Intrare
; Intrare
: 5
: 5
: 15 245 28 33 11
: 15 245 28 33 11
; Ieșire
; Ieșire
: 3
: Datele introduse sunt corecte. rezultat: 3
== Explicație ==
===Exemplul 2===
; Intrare
: 1234
; Ieșire
: Datele nu corespund restricțiilor impuse.
== Explicație exemplu 1==
: Sunt '''4''' numere impare și un număr par în șir, deci diferența este '''3'''.
: Sunt '''4''' numere impare și un număr par în șir, deci diferența este '''3'''.
<br>
<br>
Line 23: Line 29:
# 0633 - Paritate1
# 0633 - Paritate1


def diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(v, n):
def diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(vector, n):
     pare = 0
     pare = 0
     impare = 0
     impare = 0
     for i in range(n):
     for i in range(n):
         if v[i] % 2 == 0:
         if vector[i] % 2 == 0:
             pare += 1
             pare += 1
         else:
         else:
Line 42: Line 48:
     n = int(input())
     n = int(input())
     if n < 1 or n > 1000:
     if n < 1 or n > 1000:
         print("Eroare, restrictie. Numarul n trebuie sa fie intre 1 si 1000!")
         print("Datele nu corespund restricțiilor impuse.")
         exit()
         exit()
     v = list(map(int, input().split()))
     vector = list(map(int, input().split()))
     for x in v:
     for x in vector:
         if x >= 1000000000:
         if x >= 1000000000:
             print("Eroare, restrictie. Elementele din lista trebuie sa fie mai mici decat 1.000.000.000!")
             print("Datele nu corespund restricțiilor impuse.")
             exit()
             exit()
     return v, n
     return vector, n




if __name__ == '__main__':
if __name__ == '__main__':
     v, n = citire_conform_restrictiilor()
     vector, n = citire_conform_restrictiilor()
     c = diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(v, n)
     c = diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(vector, n)
     print(c)
     print("Datele introduse sunt corecte. rezultat:",c)






</syntaxhighlight>
</syntaxhighlight>

Revision as of 10:58, 11 March 2023

Sursa: - Paritate1


Cerinţa

Se dă un șir cu n elemente, numere naturale. Determinați diferența în valoare absolută dintre numărul de valori pare din șir și numărul de valori impare din șir.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele șirului.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse sunt corecte. rezultat:", apoi se va afișa numărul c, reprezentând valoarea cerută. În caz contrar, afișati pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • 1 ⩽ n ⩽ 1.000
  • cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu

Exemplul 1

Intrare
5
15 245 28 33 11
Ieșire
Datele introduse sunt corecte. rezultat: 3

Exemplul 2

Intrare
1234
Ieșire
Datele nu corespund restricțiilor impuse.

Explicație exemplu 1

Sunt 4 numere impare și un număr par în șir, deci diferența este 3.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 0633 - Paritate1

def diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(vector, n):

   pare = 0
   impare = 0
   for i in range(n):
       if vector[i] % 2 == 0:
           pare += 1
       else:
           impare += 1
   if impare > pare:
       c = impare - pare
       return c
   else:
       c = pare - impare
       return c


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 >= 1000000000:
           print("Datele nu corespund restricțiilor impuse.")
           exit()
   return vector, n


if __name__ == '__main__':

   vector, n = citire_conform_restrictiilor()
   c = diferenta_absoluta_dintre_nr_de_valori_impare_si_nr_de_valori_pare(vector, n)
   print("Datele introduse sunt corecte. rezultat:",c)


</syntaxhighlight>