0307 - Zerouri 1: Difference between revisions
Pagină nouă: == 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 :... |
No edit summary |
||
| Line 17: | Line 17: | ||
== Explicație == | == Explicație == | ||
Produsul celor 5 numere este '''30636000''', iar ultima cifră nenulă este '''6'''. | Produsul celor 5 numere este '''30636000''', iar ultima cifră nenulă este '''6'''. | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
def validare_date_numar(numar): | def validare_date_numar(numar): | ||
flag = False | flag = False | ||
| Line 29: | Line 28: | ||
def validare_date_numere(n): | def validare_date_numere(n): | ||
flag = False | flag = False | ||
if 0 <= int(n) <= | if 0 <= int(n) <= 100: | ||
flag = True | flag = True | ||
return flag | return flag | ||
| Line 44: | Line 43: | ||
cifra = produs % 10 | cifra = produs % 10 | ||
return cifra | return cifra | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
Revision as of 18:36, 15 March 2023
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(numar, 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 = int(input())
if validare_date_numere(n):
print("\nDatele de intrare corespund restricțiilor impuse.\n")
lista_numere = []
for i in range(n):
while True:
numar = input(f"Introduceți numărul {i + 1}: ")
if validare_date_numar(numar):
lista_numere.append(int(numar))
break
else:
print("Numărul introdus nu corespunde restricțiilor impuse.")
print(f"\nUltima cifră nenulă : {ultima_cifra_nenula(lista_numere)}")
else:
print("Datele de intrare nu corespund restricțiilor impuse.")