2299 - Media Geometrica: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) No edit summary |
||
Line 31: | Line 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: | ||
Line 37: | Line 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.") | ||
Line 47: | Line 47: | ||
for nr in lista: | for nr in lista: | ||
produs *= nr | produs *= nr | ||
return produs**(1/n) | return produs ** (1 / n) | ||
Line 53: | Line 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( | print(int(media)) | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 15:48, 26 April 2023
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 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))
</syntaxhighlight>