3664 - Cif Par Cif Imp

From Bitnami MediaWiki
Revision as of 11:59, 26 March 2023 by Dragos1234 (talk | contribs)

Sursă: [1]

Cerinţa

Se dau numere numere naturale. Determinaţi câte cifre pare şi câte cifre impare se află în total în cele numere numere.

Date de intrare

Programul citește de la tastatură numărul numere, iar apoi numere numere naturale, separate prin spații.

Date de ieşire

Programul va afișa pe ecran numerele pare, şi impare, separate prin spaţiu, în această ordine, reprezentând numărul de cifre pare respectiv numărul de cifre impare calculate.

Restricții și precizări

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

Exemplu

Intrare
3
11 30 3
Ieșire
1 4

Rezolvare

<syntaxhighlight lang="python" line>

  1. 3664

def validate_input(n):

   if not 1 <= n <= 10:
       print("Numărul de numere trebuie să fie între 1 și 10.")
       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


  1. Programul principal

numere = int(input("Introduceți numărul de numere: ")) if not validate_input(numere):

   exit()


if __name__ == '__main__':

   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("Numărul introdus este prea mare.")
           continue
       pare, impare = count_parity_digits(n)
       pare_total += pare
       impare_total += impare
   print(f"{pare_total} {impare_total}")

</syntaxhighlight>