0464 - Cifre K: Difference between revisions
Am creat de la zero. |
|||
Line 24: | Line 24: | ||
== Rezolvare == | == 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> | <syntaxhighlight lang="python" line> | ||
Line 48: | Line 84: | ||
# afisam numarul de aparitii | # afisam numarul de aparitii | ||
print(f"Cifra {cifra} a aparut de {aparitii} ori in numerele pare citite.") | print(f"Cifra {cifra} a aparut de {aparitii} ori in numerele pare citite.") | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 12:31, 16 May 2023
Sursa: [1]
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură cifra, iar apoi numere naturale, până la apariția lui 0.
Date de ieșire[edit | edit source]
Programul afișează pe ecran numărul de apariții ale cifrei citite în numerele citite care erau pare.
Restricţii şi precizări[edit | edit source]
- numerele citite vor fi mai mici decât 1.000.000.000
- ultimul număr citit, 0, nu se ia în considerare
Exemplu[edit | edit source]
- Intrare
- 5 145 52 354 525 0
- Ieșire
- 2
Explicație[edit | edit source]
S-au numărat aparițiile cifrei 5 în numerele 52 și 354.
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<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[edit | edit source]
<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>