0307 - Zerouri 1: Diferență între versiuni
De la Universitas MediaWiki
Fără descriere a modificării |
Fără descriere a modificării |
||
(Nu s-au afișat 3 versiuni intermediare efectuate de alți 2 utilizatori) | |||
Linia 1: | Linia 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 | ||
Linia 13: | Linia 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 == | ||
Linia 19: | Linia 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 | ||
Linia 25: | Linia 26: | ||
flag = True | flag = True | ||
return flag | return flag | ||
def validare_date_numere(n): | def validare_date_numere(n): | ||
Linia 32: | Linia 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: | ||
Linia 44: | Linia 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> |
Versiunea curentă din 11 aprilie 2023 18:06
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
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
- 0 ⩽ n ⩽ 100
- 0 ⩽ n ⩽ 1.000.000.000
Exemplu
- Intrare
- 5
- 10 24 37 46 75
- Ieșire
- Datele sunt introduse corect.
- 6
Explicație
Produsul celor 5 numere este 30636000, iar ultima cifră nenulă este 6.
Rezolvare
#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.")