0464 - Cifre K
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
<syntaxhighlight lang="python" line>
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.")
</syntaxhighlight>
Rezolvare ver. 2
<syntaxhighlight lang="python" line>
- 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.")
</syntaxhighlight>