0307 - Zerouri 1: Diferență între versiuni
De la Universitas MediaWiki
Fără descriere a modificării |
Fără descriere a modificării |
||
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 == | ||
Programul afișează pe ecran numărul '''cifra''' , reprezentând valoarea calculată | Programul afișează pe ecran numărul '''cifra''' , reprezentând valoarea calculată | ||
Linia 34: | Linia 34: | ||
def ultima_cifra_nenula( | def ultima_cifra_nenula(numere): | ||
produs = 1 | produs = 1 | ||
for nr in numere: | for nr in numere: | ||
Linia 47: | Linia 47: | ||
def main(): | |||
n = int(input()) | n = input("Introduceti numarul de numere: ") | ||
if validare_date_numar(n): | |||
n = int(n) | |||
numere = input("Introduceti numerele separate prin spatiu: ").split() | |||
if validare_date_numere(n): | |||
print("\nDatele de intrare corespund restrictiilor impuse.\n") | |||
cifra_ultima_nenula = ultima_cifra_nenula(numere) | |||
print("Ultima cifra nenula a produsului numerelor este:", cifra_ultima_nenula) | |||
else: | |||
print("Datele de intrare nu corespund restrictiilor impuse.") | |||
else: | else: | ||
print("Datele de intrare nu corespund | print("Datele de intrare nu corespund restrictiilor impuse.") | ||
if __name__ == "__main__": | |||
main() | |||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 18 martie 2023 19:18
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
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(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
def main():
n = input("Introduceti numarul de numere: ")
if validare_date_numar(n):
n = int(n)
numere = input("Introduceti numerele separate prin spatiu: ").split()
if validare_date_numere(n):
print("\nDatele de intrare corespund restrictiilor impuse.\n")
cifra_ultima_nenula = ultima_cifra_nenula(numere)
print("Ultima cifra nenula a produsului numerelor este:", cifra_ultima_nenula)
else:
print("Datele de intrare nu corespund restrictiilor impuse.")
else:
print("Datele de intrare nu corespund restrictiilor impuse.")
if __name__ == "__main__":
main()