0307 - Zerouri 1: Difference between revisions
No edit summary |
Diana Butuza (talk | contribs) No edit summary |
||
Line 25: | Line 25: | ||
flag = True | flag = True | ||
return flag | return flag | ||
def validare_date_numere(n): | def validare_date_numere(n): | ||
Line 31: | Line 32: | ||
flag = True | flag = True | ||
return flag | return flag | ||
def ultima_cifra_nenula(numar, numere): | def ultima_cifra_nenula(numar, numere): | ||
Line 43: | Line 45: | ||
cifra = produs % 10 | cifra = produs % 10 | ||
return cifra | return cifra | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
Line 60: | Line 63: | ||
else: | else: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
</syntaxhighlight> |
Revision as of 10:21, 18 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.")
</syntaxhighlight>