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.")