0464 - Cifre K

From Bitnami MediaWiki

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>

  1. 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.")
  1. 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.")

  1. afisam numarul de aparitii

print(f"Cifra {cifra} a aparut de {aparitii} ori in numerele pare citite.")

</syntaxhighlight>