0306 - Zerouri: Diferență între versiuni
De la Universitas MediaWiki
mFără descriere a modificării |
|||
Linia 22: | Linia 22: | ||
flag = False | flag = False | ||
if numar.isdigit(): | if numar.isdigit(): | ||
if 0 < | if 0 < int(numar) <= 100: | ||
flag = True | flag = True | ||
return flag | return flag | ||
def validare_date_numere(n, numere): | |||
def validare_date_numere(n): | |||
flag = False | flag = False | ||
if | if len(numere) == n and all(num.isdigit() and int(num) > 0 for num in numere): | ||
flag = True | flag = True | ||
return flag | return flag | ||
def nr_zerouri( | def nr_zerouri(numar): | ||
total_zerouri = 0 | |||
while numar % 10 == 0: | |||
total_zerouri += 1 | |||
numar //= 10 | |||
return total_zerouri | |||
def main(): | |||
n = input("Introduceti numarul de numere: ") | |||
if validare_date_numar(n): | |||
n = int(n) | |||
numere = input("Introduceti numerele separate prin spatiu: ").split() | |||
num | if validare_date_numere(n, numere): | ||
print("\nDatele de intrare corespund restrictiilor impuse.\n") | |||
produs = 1 | |||
for num in numere: | |||
produs *= int(num) | |||
total_zerouri = nr_zerouri(produs) | |||
print("Numarul de zerouri de la sfarsitul produsului este:", total_zerouri) | |||
else: | |||
print("Datele de intrare nu corespund restrictiilor impuse.") | |||
else: | |||
print("Datele de intrare nu corespund restrictiilor impuse.") | |||
if __name__ == "__main__": | |||
main() | |||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 18 martie 2023 19:15
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
Programul afișează pe ecran numărul ”total_zerouri”, reprezentând valoarea calculată.
Restricții și precizări
- 0 ⩽ n ⩽ 100
- 0 ⩽ numar ⩽ 1.000.000.000
Exemplu
- Intrare
- 5
- 10 24 37 46 75
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 3
Explicație
Produsul celor 5 numere este 30636000, şi se termină cu 3 zerouri.
Rezolvare
def validare_date_numar(numar):
flag = False
if numar.isdigit():
if 0 < int(numar) <= 100:
flag = True
return flag
def validare_date_numere(n, numere):
flag = False
if len(numere) == n and all(num.isdigit() and int(num) > 0 for num in numere):
flag = True
return flag
def nr_zerouri(numar):
total_zerouri = 0
while numar % 10 == 0:
total_zerouri += 1
numar //= 10
return total_zerouri
def main():
n = input("Introduceti numarul de numere: ")
if validare_date_numar(n):
n = int(n)
numere = input("Introduceti numerele separate prin spatiu: ").split()
if validare_date_numere(n, numere):
print("\nDatele de intrare corespund restrictiilor impuse.\n")
produs = 1
for num in numere:
produs *= int(num)
total_zerouri = nr_zerouri(produs)
print("Numarul de zerouri de la sfarsitul produsului este:", total_zerouri)
else:
print("Datele de intrare nu corespund restrictiilor impuse.")
else:
print("Datele de intrare nu corespund restrictiilor impuse.")
if __name__ == "__main__":
main()