3664 - Cif Par Cif Imp: Difference between revisions

From Bitnami MediaWiki
No edit summary
Dragos1234 (talk | contribs)
Line 35: Line 35:
def validate_input(n):
def validate_input(n):
     if not 1 <= n <= 10:
     if not 1 <= n <= 10:
         print("Numărul de numere trebuie să fie între 1 și 10.")
         print("Datele introduse nu corespund cerintelor.")
         return False
         return False
     return True
     return True
Line 62: Line 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 restrictiilor impuse")
             print("Datele de intrare nu corespund cerintelor")
             continue
             continue
         pare, impare = count_parity_digits(n)
         pare, impare = count_parity_digits(n)

Revision as of 16:08, 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>

  1. 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>