2299 - Media Geometrica: Diferență între versiuni
De la Universitas MediaWiki
Linia 26: | Linia 26: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
def | def validare(n, lista): | ||
n | # 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: | |||
for | print("Datele nu corespund restricțiilor impuse.") | ||
if | |||
print(" | |||
return False | return False | ||
# Toate validările au trecut | |||
print("Datele sunt introduse corect.") | |||
return True | return True | ||
def | def media_geometrica(n, lista): | ||
produs = 1 | |||
if | 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)) | |||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 21 aprilie 2023 15:50
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))