2299 - Media Geometrica

De la Universitas MediaWiki

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(round(media, 2))