0306 - Zerouri
Cerinţa
Se dau n numere naturale nenule. Calculaţi numărul de zerouri de la sfârşitul scrierii zecimale 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 NRZ, 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.
- 3
Explicație
Produsul celor 5 numere este 30636000, şi se termină cu 3 zerouri.
Rezolvare
<syntaxhighlight lang="python" line>
- Funcție pentru validarea numărului de intrare
def validare_date_numar(numar):
flag = False if numar.isdigit(): # verifică dacă numărul este un întreg pozitiv if 0 < int(numar) <= 100: # verifică dacă numărul se află în intervalul specificat flag = True # dacă toate condițiile sunt îndeplinite, returnează 'True' return flag
- Funcție pentru validarea listei de numere de intrare
def validare_date_numere(n, numere):
flag = False if len(numere) == n and all(num.isdigit() and int(num) > 0 for num in numere): # verifică dacă lista conține exact n numere întregi pozitive flag = True return flag
- Funcție pentru calculul numărului de zerouri dintr-un număr dat
def nr_zerouri(numar):
NRZ = 0 while numar % 10 == 0: NRZ += 1 numar //= 10 return NRZ
if __name__ == "__main__":
n = input() # primește numărul de intrare 'n' de la utilizator if validare_date_numar(n): # verifică dacă 'n' este valid n = int(n) numere = input().split() # primește lista de 'n' numere de la utilizator if validare_date_numere(n, numere): # verifică dacă lista de numere este validă print("\nDatele sunt introduse corect.\n") produs = 1 for num in numere: produs *= int(num) # calculează produsul numerelor din listă NRZ = nr_zerouri(produs) # calculează numărul de zerouri din produs print(NRZ) # afișează numărul de zerouri else: print("Datele nu corespund restrictiilor impuse.") else: print("Datele nu corespund restrictiilor impuse.")
</syntaxhighlight>