3664 - Cif Par Cif Imp: Diferență între versiuni
De la Universitas MediaWiki
Fără descriere a modificării |
|||
Linia 35: | Linia 35: | ||
def validate_input(n): | def validate_input(n): | ||
if not 1 <= n <= 10: | if not 1 <= n <= 10: | ||
print(" | print("Datele introduse nu corespund cerintelor.") | ||
return False | return False | ||
return True | return True | ||
Linia 62: | Linia 62: | ||
n = int(input(f"Introduceți numărul {i + 1}: ")) | n = int(input(f"Introduceți numărul {i + 1}: ")) | ||
if n >= 1000000000: | if n >= 1000000000: | ||
print("Datele de intrare nu corespund | print("Datele de intrare nu corespund cerintelor") | ||
continue | continue | ||
pare, impare = count_parity_digits(n) | pare, impare = count_parity_digits(n) |
Versiunea de la data 26 aprilie 2023 16:08
Sursă: [1]
Cerinţa
Se dau n numere naturale. Determinaţi câte cifre pare şi câte cifre impare se află în total în cele n numere.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.
Date de ieşire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restrictiilor impuse", apoi pe un rând nou va afișa numărul de cifre pare și impare separate printr-un spațiu. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse.
Restricții și precizări
- 1 ⩽ n ⩽ 10
- cele n numere citite vor fi mai mici decât 1.000.000.000.
Exemplul 1
- Intrare
- Introduceți numărul de numere: 3
- Introduceți numărul 1: 11
- Introduceți numărul 2: 30
- Introduceți numărul 3: 3
- Ieșire
- 1 4
Exemplul 2
- Intrare
- Introduceți numărul de numere: 0
- Iesire
- Numărul de numere trebuie să fie între 1 și 10.
Rezolvare
#3664
def validate_input(n):
if not 1 <= n <= 10:
print("Datele introduse nu corespund cerintelor.")
return False
return True
def count_parity_digits(n):
pare = 0
impare = 0
while n > 0:
cifra = n % 10
if cifra % 2 == 0:
pare += 1
else:
impare += 1
n //= 10
return pare, impare
if __name__ == '__main__':
numere = int(input("Introduceți numărul de numere: "))
if not validate_input(numere):
exit()
pare_total = 0
impare_total = 0
for i in range(numere):
n = int(input(f"Introduceți numărul {i + 1}: "))
if n >= 1000000000:
print("Datele de intrare nu corespund cerintelor")
continue
pare, impare = count_parity_digits(n)
pare_total += pare
impare_total += impare
print(f"Datele de intrare corespund restrictiilor impuse\n{pare_total} {impare_total}")