2299 - Media Geometrica: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Linia 31: Linia 31:
         print("Datele nu corespund restricțiilor impuse.")
         print("Datele nu corespund restricțiilor impuse.")
         return False
         return False
   
 
     # Verificăm dacă numerele din listă respectă restricțiile impuse
     # Verificăm dacă numerele din listă respectă restricțiile impuse
     for nr in lista:
     for nr in lista:
Linia 37: Linia 37:
             print("Datele nu corespund restricțiilor impuse.")
             print("Datele nu corespund restricțiilor impuse.")
             return False
             return False
   
 
     # Toate validările au trecut
     # Toate validările au trecut
     print("Datele sunt introduse corect.")
     print("Datele sunt introduse corect.")
Linia 47: Linia 47:
     for nr in lista:
     for nr in lista:
         produs *= nr
         produs *= nr
     return produs**(1/n)
     return produs ** (1 / n)




Linia 53: Linia 53:
     n = int(input())
     n = int(input())
     lista = list(map(int, input().split()))
     lista = list(map(int, input().split()))
   
     if validare(n, lista):
     if validare(n, lista):
         media = media_geometrica(n, lista)
         media = media_geometrica(n, lista)
         print(round(media, 2))
         print(int(media))


</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 26 aprilie 2023 15:48

Cerinta

Se dau n numere naturale. Calculați media lor geometrică.

Date de intrare

Programul citește de la tastatură numărul natural n , apoi n numere naturale.

Date de ieșire

Programul va afișa pe ecran media geometrică a celor n numere.

Restricții și precizări

1 < n ≤ 10 numerele citite vor fi cuprinse între 0 și 50 . rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât 0.01 .

Exemplu

Intrare 4 2 4 2 1

Ieșire 2

Explicație

2⋅4⋅2⋅1−−−−−−−−√4=2

Rezolvare

def validare(n, lista):
    # Verificăm dacă numărul n respectă restricțiile impuse
    if not 1 < n <= 10:
        print("Datele nu corespund restricțiilor impuse.")
        return False

    # Verificăm dacă numerele din listă respectă restricțiile impuse
    for nr in lista:
        if not 0 <= nr <= 50:
            print("Datele nu corespund restricțiilor impuse.")
            return False

    # Toate validările au trecut
    print("Datele sunt introduse corect.")
    return True


def media_geometrica(n, lista):
    produs = 1
    for nr in lista:
        produs *= nr
    return produs ** (1 / n)


if __name__ == '__main__':
    n = int(input())
    lista = list(map(int, input().split()))
    if validare(n, lista):
        media = media_geometrica(n, lista)
        print(int(media))