3075 - Prod K: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/3078/prod-k] == Cerința == Scrieți un program care citește un număr natura n și o cifra. Programul va calcula produsul cifrelor numarului diferite de cifra data. == Date de intrare == Programul citește de la tastatură numarul si cifra. == Date de ieșire == Programul va afișa pe ecran produsul, cu semnificația din enunț. Dacă numarul nu conține cifre diferite de cifra data, programul va afișa valoarea 0. == Restricții ș...
 
 
Line 25: Line 25:


def calculeaza_produs(numarul, cifra):
def calculeaza_produs(numarul, cifra):
    if cifra < 0:
        print("Cifra trebuie să fie pozitivă.")
        exit()
     produs = 1
     produs = 1
     contine_cifra_diferita = False
     contine_cifra_diferita = False
Line 32: Line 36:
         cifra_curenta = numarul % 10
         cifra_curenta = numarul % 10


         # Verificăm dacă cifra este diferită de cifra dată
         # Verificăm dacă cifra este diferită de cifra dată și este pozitivă
         if cifra_curenta != cifra:
         if cifra_curenta != cifra and cifra > 0:
             produs *= cifra_curenta
             produs *= cifra_curenta
             contine_cifra_diferita = True
             contine_cifra_diferita = True

Latest revision as of 10:11, 19 May 2023

Sursa: [1]

Cerința[edit | edit source]

Scrieți un program care citește un număr natura n și o cifra. Programul va calcula produsul cifrelor numarului diferite de cifra data.

Date de intrare[edit | edit source]

Programul citește de la tastatură numarul si cifra.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran produsul, cu semnificația din enunț. Dacă numarul nu conține cifre diferite de cifra data, programul va afișa valoarea 0.

Restricții și precizări[edit | edit source]

  • 1 ≤ numar ≤ 2.000.000.000

Exemplu[edit | edit source]

Intrare
123242 2
Ieșire
12

Explicație[edit | edit source]

S-a citit n=123242 iar produsul afișat este P=12 (=1*3*4).

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

def calculeaza_produs(numarul, cifra):

   if cifra < 0:
       print("Cifra trebuie să fie pozitivă.")
       exit()
   produs = 1
   contine_cifra_diferita = False
   # Parcurgem fiecare cifră a numarului
   while numarul > 0:
       cifra_curenta = numarul % 10
       # Verificăm dacă cifra este diferită de cifra dată și este pozitivă
       if cifra_curenta != cifra and cifra > 0:
           produs *= cifra_curenta
           contine_cifra_diferita = True
       numarul //= 10
   # Dacă numarul nu conține nicio cifră diferită de cifra dată, returnăm 0
   if not contine_cifra_diferita:
       return 0
   return produs

if __name__ == "__main__":

   # Citim valorile de intrare
   numarul, cifra = map(int, input("Introduceți valorile pentru numarul și cifra: ").split())
   # Validăm intrarea
   if numarul < 1 or numarul > 2000000000:
       print("Numarul trebuie să fie între 1 și 2.000.000.000.")
       exit()
   # Calculăm și afișăm produsul
   rezultat = calculeaza_produs(numarul, cifra)
   print("Produsul cifrelor numarului diferite de cifra dată este:", rezultat)

</syntaxhighlight>