给定一个自然数数组,任务是计算给定数字的调和平均值并打印出来。
调和均值是指算术平均数的倒数。
$$Harmonic \:均值= \ frac {n} {\ frac {1} {a} + \ frac {1} {b} + \ frac {1} {c} + ...} $$
其中,n是给定元素的总数,而a,b,c,..是数组中的实际元素。
计算谐波平均值的步骤是-
做元素的倒数
将所有往复元素加在一起
现在,将数组中元素的总数除以往复元素的总数
输入值
arr[] = {2.0, 3.4, 5.3, 2.1}
输出结果
Harmonic mean is: 2.74163
输入值
arr[] = {13.5, 14.5, 14.8, 15.2, 16.1}
输出结果
Harmonic mean is : 14.7707
Start Step 1→ declare function to 计算谐波平均值 of numbers float harmonic_mean(float arr[], int size) Declare float sum = 0 Loop For int i = 0 and i < size and i++ Set sum = sum + (float)1 / arr[i] End return (float)size/sum Step 2→ In main() Declare float arr[] = {2.0, 3.4, 5.3, 2.1} Declare int size = sizeof(arr) / sizeof(arr[0]) Call harmonic_mean(arr, size) Stop
#include <bits/stdc++.h> using namespace std; //计算谐波平均值 float harmonic_mean(float arr[], int size){ float sum = 0; for (int i = 0; i < size; i++) sum = sum + (float)1 / arr[i]; return (float)size/sum; } int main(){ float arr[] = {2.0, 3.4, 5.3, 2.1}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Harmonic mean is : "<<harmonic_mean(arr, size); return 0; }
输出结果
如果运行上面的代码,它将生成以下输出-
Harmonic mean is : 2.74163