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(numar, numere):
def ultima_cifra_nenula(numere):
     produs = 1
     produs = 1
     for nr in numere:
     for nr in numere:
Linia 47: Linia 47:




if __name__ == '__main__':
def main():
     n = int(input())
    n = input("Introduceti numarul de numere: ")
    if validare_date_numere(n):
     if validare_date_numar(n):
        print("\nDatele de intrare corespund restricțiilor impuse.\n")
        n = int(n)
        lista_numere = []
        numere = input("Introduceti numerele separate prin spatiu: ").split()
        for i in range(n):
        if validare_date_numere(n):
             while True:
            print("\nDatele de intrare corespund restrictiilor impuse.\n")
                numar = input(f"Introduceți numărul {i + 1}: ")
            cifra_ultima_nenula = ultima_cifra_nenula(numere)
                if validare_date_numar(numar):
             print("Ultima cifra nenula a produsului numerelor este:", cifra_ultima_nenula)
                    lista_numere.append(int(numar))
        else:
                    break
            print("Datele de intrare nu corespund restrictiilor impuse.")
                else:
                    print("Numărul introdus nu corespunde restricțiilor impuse.")
        print(f"\nUltima cifră nenulă : {ultima_cifra_nenula(lista_numere)}")
     else:
     else:
         print("Datele de intrare nu corespund restricțiilor impuse.")
         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()