0464 - Cifre K

De la Universitas MediaWiki

Sursa: [1]


Cerinţa

Se citește o cifră și apoi se citesc numere până la apariția lui 0. Să se determine de câte ori apare cifra citita în numerele citite pare.

Date de intrare

Programul citește de la tastatură cifra, iar apoi numere naturale, până la apariția lui 0.

Date de ieșire

Programul afișează pe ecran numărul de apariții ale cifrei citite în numerele citite care erau pare.

Restricţii şi precizări

  • numerele citite vor fi mai mici decât 1.000.000.000
  • ultimul număr citit, 0, nu se ia în considerare

Exemplu

Intrare
5 145 52 354 525 0
Ieșire
2

Explicație

S-au numărat aparițiile cifrei 5 în numerele 52 și 354.

Rezolvare

Rezolvare ver. 1

def obtine_cifra_valabila():
    while True:
        cifra = input("Introduceti cifra: ")
        if cifra.isdigit() and 0 <= int(cifra) <= 9:
            return int(cifra)
        print("Cifra introdusa nu este valida. Introduceti o cifra intre 0 si 9.")

def numara_aparitii_cifra(cifra):
    aparitii = 0
    while True:
        numar = int(input("Introduceti un numar (0 pentru a opri citirea): "))
        if numar == 0:
            break

        if numar % 2 == 0:
            aparitii += str(numar).count(str(cifra))

    return aparitii

if __name__ == "__main__":
    # Obține cifra validă
    cifra = obtine_cifra_valabila()

    # Numără aparițiile cifrei în numerele pare
    aparitii = numara_aparitii_cifra(cifra)

    # Afisează rezultatul
    print("Datele sunt introduse corect.")
    print(f"Cifra {cifra} a aparut de {aparitii} ori in numerele pare citite.")

Rezolvare ver. 2

# citim cifra
while True:
    cifra = input("Introduceti cifra: ")
    if cifra.isdigit() and 0 <= int(cifra) <= 9:
        break
    print("Cifra introdusa nu este valida. Introduceti o cifra intre 0 si 9.")

# citim numere pana la intalnirea lui 0
aparitii = 0
while True:
    numar = input("Introduceti un numar (0 pentru a opri citirea): ")
    if numar == "0":
        break

    # verificam daca numarul este par
    if int(numar) % 2 == 0:
        # numaram aparitiile cifrei in numarul par
        aparitii += str(numar).count(cifra)

print("Datele sunt introduse corect.")
# afisam numarul de aparitii
print(f"Cifra {cifra} a aparut de {aparitii} ori in numerele pare citite.")