3075 - Prod K: Difference between revisions
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>