0307 - Zerouri 1

From Bitnami 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

Programul afișează pe ecran numărul cifra , 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.
6

Explicație

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

Rezolvare

<syntaxhighlight lang="python" line> 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


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("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):
           print("\nDatele de intrare corespund restrictiilor impuse.\n")
           cifra_ultima_nenula = ultima_cifra_nenula(numere)
           print("Ultima cifra nenula a produsului numerelor este:", cifra_ultima_nenula)
       else:
           print("Datele de intrare nu corespund restrictiilor impuse.")
   else:
       print("Datele de intrare nu corespund restrictiilor impuse.")

</syntaxhighlight>