0307 - Zerouri 1: Difference between revisions
No edit summary |
No edit summary |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Cerinţa == | == Cerinţa == | ||
Se dau n numere naturale nenule. Calculaţi ultima cifră nenulă din scrierea zecimală a produsului celor n numere. | Se dau '''n''' numere naturale nenule. Calculaţi ultima cifră nenulă din scrierea zecimală a produsului celor '''n''' numere. | ||
== Date de intrare == | == Date de intrare == | ||
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 == | ||
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 ⩽ | * 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 | : 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 25: | Line 26: | ||
flag = True | flag = True | ||
return flag | return flag | ||
def validare_date_numere(n): | def validare_date_numere(n): | ||
Line 32: | Line 34: | ||
return flag | return flag | ||
def ultima_cifra_nenula( | #Funcție care calculeaza ultima cifră nenulă | ||
def ultima_cifra_nenula(numere): | |||
produs = 1 | produs = 1 | ||
for nr in numere: | for nr in numere: | ||
Line 44: | Line 47: | ||
return cifra | return cifra | ||
if __name__ == | |||
n = | if __name__ == "__main__": | ||
if | 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: | else: | ||
print("Datele | print("Datele nu corespund restrictiilor impuse.") | ||
</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>
- 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>