2299 - Media Geometrica: Difference between revisions
Nagy Lenard (talk | contribs) No edit summary |
Paul Ungur (talk | contribs) |
||
Line 26: | Line 26: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
def | 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 | |||
for | |||
if | def validate_input(nums): | ||
print("Numerele trebuie | for num in nums: | ||
if num < 0 or num > 50: | |||
print("Numerele trebuie sa fie cuprinse intre 0 si 50.") | |||
return False | return False | ||
return True | return True | ||
def calculate_geometric_mean(nums): | |||
def | product = 1 | ||
for num in nums: | |||
for | product *= num | ||
geometric_mean = product ** (1/len(nums)) | |||
return geometric_mean | |||
return | |||
def main(): | 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__ == | if __name__ == "__main__": | ||
main() | main() | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 15:26, 21 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 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>