2708 - Verif Paritate: Difference between revisions
Pagină nouă: ==Cerință== Se citesc '''n''' numere naturale. Determinați pentru fiecare dintre ele dacă este par sau impar. ==Date de intrare== Programul citește de la tastatură numărul '''n''', iar apoi '''n numere naturale'''. ==Date de ieșire== Programul va afișa pe ecran '''n''' valori '''0''' sau '''1''', separate prin spații. Dacă numărul corespunzător este par se va afișa '''0''', iar dacă este impar se va afișa '''1'''. ==Restricții de precizări== *1 ⩽ '''n''... |
Vardai Erwin (talk | contribs) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
Programul citește de la tastatură numărul '''n''', iar apoi '''n numere naturale'''. | Programul citește de la tastatură numărul '''n''', iar apoi '''n numere naturale'''. | ||
==Date de ieșire== | ==Date de ieșire== | ||
Programul va afișa pe ecran '''n''' valori '''0''' sau '''1''', separate prin spații. Dacă numărul corespunzător este par se va afișa '''0''', iar dacă este impar se va afișa '''1'''. | Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Programul va afișa pe ecran '''n''' valori '''0''' sau '''1''', separate prin spații. Dacă numărul corespunzător este par se va afișa '''0''', iar dacă este impar se va afișa '''1'''. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse." | ||
==Restricții de precizări== | ==Restricții de precizări== | ||
*1 ⩽ '''n''' ⩽ 1000 | *1 ⩽ '''n''' ⩽ 1000 | ||
Line 15: | Line 16: | ||
;Intrare | ;Intrare | ||
: | :3 | ||
:1 2 3 | :1 2 3 | ||
;Ieșire | ;Ieșire | ||
Line 23: | Line 24: | ||
:Datele introduse corespund restricțiilor impuse. | :Datele introduse corespund restricțiilor impuse. | ||
: | :1 0 1 | ||
==Exemplul 2== | ==Exemplul 2== | ||
;Intrare | ;Intrare | ||
Line 35: | Line 36: | ||
:Datele introduse corespund restricțiilor impuse. | :Datele introduse corespund restricțiilor impuse. | ||
:0 | :0 0 1 0 | ||
== Rezolvare ver. 1 == | == Rezolvare ver. 1 == | ||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def validare(n, numar | def validare(n, numere): | ||
return | for numar in numere: | ||
if numar >= 2 ** 64: | |||
return False | |||
return 1 <= n <= 1000 | |||
def este_par_sau_impar(numar): | |||
# funcție care determină dacă un număr este par sau impar | |||
if numar % 2 == 0: | |||
return 0 # Returnează 0 pentru numere pare | |||
else: | |||
return 1 # Returnează 1 pentru numere impare | |||
if __name__ == | if __name__ == '__main__': | ||
try: | |||
n = int(input("Introduceți numărul de numere naturale: ")) # Citirea numărului de numere de la tastatură | |||
numere = [] | |||
for i in range(n): | |||
numar = int(input(f"Introduceți numărul {i + 1}: ")) # Citirea fiecărui număr din lista de numere | |||
numere.append(numar) # Adăugarea numărului citit în lista de numere | |||
if validare(n, | if validare(n, numere): | ||
print("Datele de intrare corespund restrictiilor impuse.") | |||
# Verificăm dacă fiecare număr din listă este par sau impar și afișăm rezultatul corespunzător | |||
for numar in numere: | |||
print(este_par_sau_impar(numar), | |||
end=" ") # Afișarea rezultatului returnat de funcția este_par_sau_impar | |||
else: | |||
print("Datele de intrare nu corespund restricțiilor impuse.") | |||
except ValueError: | |||
print( | |||
"Datele de intrare nu corespund restricțiilor impuse.") # Gestionarea excepției în cazul în care datele introduse nu sunt numere | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 19:26, 25 April 2023
Cerință[edit | edit source]
Se citesc n numere naturale. Determinați pentru fiecare dintre ele dacă este par sau impar.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, iar apoi n numere naturale.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Programul va afișa pe ecran n valori 0 sau 1, separate prin spații. Dacă numărul corespunzător este par se va afișa 0, iar dacă este impar se va afișa 1. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții de precizări[edit | edit source]
- 1 ⩽ n ⩽ 1000
- se recomandă utilizarea operațiilor pe biți
- cele n numere citite se pot reprezenta pe 64 de biți, fără semn;
Exemplul 1[edit | edit source]
- Intrare
- 3
- 1 2 3
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 1 0 1
Exemplul 2[edit | edit source]
- Intrare
- 4
- 4 10 7 0
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 0 0 1 0
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare(n, numere):
for numar in numere: if numar >= 2 ** 64: return False return 1 <= n <= 1000
def este_par_sau_impar(numar):
# funcție care determină dacă un număr este par sau impar if numar % 2 == 0: return 0 # Returnează 0 pentru numere pare else: return 1 # Returnează 1 pentru numere impare
if __name__ == '__main__':
try: n = int(input("Introduceți numărul de numere naturale: ")) # Citirea numărului de numere de la tastatură numere = [] for i in range(n): numar = int(input(f"Introduceți numărul {i + 1}: ")) # Citirea fiecărui număr din lista de numere numere.append(numar) # Adăugarea numărului citit în lista de numere
if validare(n, numere): print("Datele de intrare corespund restrictiilor impuse.") # Verificăm dacă fiecare număr din listă este par sau impar și afișăm rezultatul corespunzător for numar in numere: print(este_par_sau_impar(numar), end=" ") # Afișarea rezultatului returnat de funcția este_par_sau_impar else: print("Datele de intrare nu corespund restricțiilor impuse.") except ValueError: print( "Datele de intrare nu corespund restricțiilor impuse.") # Gestionarea excepției în cazul în care datele introduse nu sunt numere
</syntaxhighlight>