Cho luồng số, in ra trung bình sau mỗi lần thêm số mới. Trung bình tại bước i = (trung bình trước * i + số_mới) / (i+1).
Ví dụ luồng: 24, 76, 29, 63, 88 Trung bình: 24, 50, 43, 48, 56
Giải thuật
Khởi tạo average = 0. Với mỗi phần tử arr[i]: average = (average * i + arr[i]) / (i + 1). In average.
Ví dụ minh họa
#include <iostream>
using namespace std;
int main() {
int arr[] = {24, 76, 29, 63, 88};
int average = 0;
int n = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < n; i++) {
average = (average * i + arr[i]) / (i + 1);
cout << "Trung binh cua " << i + 1 << " so: " << average << endl;
}
return 0;
}
Kết quả
Trung binh cua 1 so: 24 Trung binh cua 2 so: 50 Trung binh cua 3 so: 43 Trung binh cua 4 so: 48 Trung binh cua 5 so: 56