0307 - Zerouri 1
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
<syntaxhighlight lang="python" line>
- 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.")
</syntaxhighlight>