3664 - Cif Par Cif Imp: Diferență între versiuni

De la Universitas MediaWiki
Linia 5: Linia 5:


== Date de intrare ==
== Date de intrare ==
Programul citește de la tastatură numărul '''numere''', iar apoi '''numere''' numere naturale, separate prin spații.
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spații.
 
== Date de ieşire ==
== 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.
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.

Versiunea de la data 26 martie 2023 11:59

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

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

#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


# 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}")