0307 - Zerouri 1: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 4: Line 4:
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spaţii.
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spaţii.
== Date de ieşire ==
== Date de ieşire ==
Programul afișează pe ecran numărul '''cifra''' , reprezentând valoarea calculată
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 ==
== Restricții și precizări ==
* 0 ⩽ n ⩽ 100
* 0 ⩽ n ⩽ 100
* 0 ⩽ numar ⩽ 1.000.000.000
* 0 ⩽ n ⩽ 1.000.000.000
== Exemplu ==
== Exemplu ==
; Intrare
; Intrare
Line 13: Line 13:
: 10 24 37 46 75
: 10 24 37 46 75
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele sunt introduse corect.
: 6
: 6
== Explicație ==  
== Explicație ==  
Line 19: Line 19:
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#Verificarea restricțiilor impuse
def validare_date_numar(numar):
def validare_date_numar(numar):
     flag = False
     flag = False
Line 33: Line 34:
     return flag
     return flag


 
#Funcție care calculeaza ultima cifră nenulă
def ultima_cifra_nenula(numere):
def ultima_cifra_nenula(numere):
     produs = 1
     produs = 1
Line 47: Line 48:




def main():
if __name__ == "__main__":
     n = input("Introduceti numarul de numere: ")
     n = input( )
     if validare_date_numar(n):
     if validare_date_numar(n):
         n = int(n)
         n = int(n)
         numere = input("Introduceti numerele separate prin spatiu: ").split()
         numere = input().split()
        #Verificăm dacă datele introduse corespund cu restricțiile impuse
         if validare_date_numere(n):
         if validare_date_numere(n):
             print("\nDatele de intrare corespund restrictiilor impuse.\n")
             print("\nDatele sunt introduse corect.\n")
             cifra_ultima_nenula = ultima_cifra_nenula(numere)
             cifra_ultima_nenula = ultima_cifra_nenula(numere)
             print("Ultima cifra nenula a produsului numerelor este:", cifra_ultima_nenula)
             print( cifra_ultima_nenula)
         else:
         else:
             print("Datele de intrare nu corespund restrictiilor impuse.")
             print("Datele nu corespund restrictiilor impuse.")
    # Dacă datele nu corespund cu restricțiile impuse, se afișează un mesaj de eroare.
     else:
     else:
         print("Datele de intrare nu corespund restrictiilor impuse.")
         print("Datele nu corespund restrictiilor impuse.")
 
if __name__ == "__main__":
    main()


</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 18:06, 11 April 2023

Cerinţa[edit | edit source]

Se dau n numere naturale nenule. Calculaţi ultima cifră nenulă din scrierea zecimală a produsului celor n numere.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.

Date de ieşire[edit | edit source]

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[edit | edit source]

  • 0 ⩽ n ⩽ 100
  • 0 ⩽ n ⩽ 1.000.000.000

Exemplu[edit | edit source]

Intrare
5
10 24 37 46 75
Ieșire
Datele sunt introduse corect.
6

Explicație[edit | edit source]

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

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 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
  1. 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>