2299 - Media Geometrica

From Bitnami 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

<syntaxhighlight lang="python" line="1"> 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()

</syntaxhighlight>