3664 - Cif Par Cif Imp: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) No edit summary |
||
Line 72: | Line 72: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicatie rezolvare== |
Revision as of 16:09, 26 April 2023
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
<syntaxhighlight lang="python" line>
- 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}")
</syntaxhighlight>