0307 - Zerouri 1

De la Universitas MediaWiki

Cerinţa

Se dau n numere naturale nenule. Calculaţi ultima cifră nenulă din scrierea zecimală a produsului celor n numere.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.

Date de ieşire

Dacă datele sunt introduse corect,pe ecran se va afișa :"Datele sunt introduse corect.",apoi pe un rând nou numărul C , reprezentând valoarea calculată.În cazul contrar,se va afișa pe ecran "Datele nu corespund restricțiilor impuse.".

Restricții și precizări

  • 0 ⩽ n ⩽ 100
  • 0 ⩽ n ⩽ 1.000.000.000

Exemplu

Intrare
5
10 24 37 46 75
Ieșire
Datele sunt introduse corect.
6

Explicație

Produsul celor 5 numere este 30636000, iar ultima cifră nenulă este 6.

Rezolvare

#Verificarea restricțiilor impuse
def validare_date_numar(numar):
    flag = False
    if numar.isdigit():
        if 0 <= int(numar) <= 1_000_000_000:
            flag = True
    return flag


def validare_date_numere(n):
    flag = False
    if 0 <= int(n) <= 100:
        flag = True
    return flag

#Funcție care calculeaza ultima cifră nenulă
def ultima_cifra_nenula(numere):
    produs = 1
    for nr in numere:
        produs *= int(nr)
    # determinăm ultima cifră nenulă
    cifra = 0
    while produs % 10 == 0:
        produs //= 10
    if produs > 0:
        cifra = produs % 10
    return cifra


if __name__ == "__main__":
    n = input( )
    if validare_date_numar(n):
        n = int(n)
        numere = input().split()
        #Verificăm dacă datele introduse corespund cu restricțiile impuse 
        if validare_date_numere(n):
            print("\nDatele sunt introduse corect.\n")
            cifra_ultima_nenula = ultima_cifra_nenula(numere)
            print( cifra_ultima_nenula)
        else:
            print("Datele nu corespund restrictiilor impuse.")
    # Dacă datele nu corespund cu restricțiile impuse, se afișează un mesaj de eroare.
    else:
        print("Datele nu corespund restrictiilor impuse.")