0464 - Cifre K: Difference between revisions

From Bitnami MediaWiki
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>

  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>