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 read_input():
    n = int(input("Introduceti numarul de numere: "))
    nums = []
    for i in range(n):
        num = int(input(f"Introduceti numarul {i+1}: "))
        nums.append(num)
    return nums

def validate_input(nums):
    for num in nums:
        if num < 0 or num > 50:
            print("Numerele trebuie sa fie cuprinse intre 0 si 50.")
            return False
    return True

def calculate_geometric_mean(nums):
    product = 1
    for num in nums:
        product *= num
    geometric_mean = product ** (1/len(nums))
    return geometric_mean

def main():
    nums = read_input()
    if not validate_input(nums):
        return
    geometric_mean = calculate_geometric_mean(nums)
    print(f"Media geometrica este: {geometric_mean:.2f}")

if __name__ == "__main__":
    main()