0464 - Cifre K

From Bitnami MediaWiki
Revision as of 12:31, 16 May 2023 by Petras.du.ioana (talk | contribs) (→‎Rezolvare)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>

  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>