3075 - Prod K: Diferență între versiuni

De la Universitas 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 ș...)
 
 
Linia 25: Linia 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
Linia 32: Linia 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

Versiunea curentă din 19 mai 2023 10:11

Sursa: [1]

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 și precizări

  • 1 ≤ numar ≤ 2.000.000.000

Exemplu

Intrare
123242 2
Ieșire
12

Explicație

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

Rezolvare

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)