มี n ตัวเลขใน Array โปรแกรมนี้หาค่าเฉลี่ย ด้วย 2 วิธี
Input - 1 2 3 4 5 6 7
Output - 4
คำอธิบาย - ผลรวม 1+2+3+4+5+6+7=28 จำนวน 7 ตัว ค่าเฉลี่ย = 28/7 = 4
วิธี 1 - Iterative
หาผลรวม แล้วหารด้วยจำนวนสมาชิก
ตัวอย่าง
#include <iostream>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7};
int n = 7;
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
float average = sum / n;
cout << average;
return 0;
}วิธี 2 - Recursive
ส่ง Index เป็น Parameter เรียกซ้ำหาผลรวม แล้วหาร n
Input - 1 2 3 4 5
Output - 3
คำอธิบาย - ผลรวม 15 จำนวน 5 ตัว ค่าเฉลี่ย = 3
ตัวอย่าง
#include <iostream>
using namespace std;
int avg(int arr[], int i, int n) {
if (i == n - 1) return arr[i];
if (i == 0) return ((arr[i] + avg(arr, i + 1, n)) / n);
return (arr[i] + avg(arr, i + 1, n));
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = 5;
cout << avg(arr, 0, n) << endl;
return 0;
}