Computer >> Máy Tính >  >> Lập trình >> C ++

Trung vị sau K số nguyên bổ sung trong C ++

Trong bài toán này, chúng ta được cho một mảng gồm n số nguyên và chúng ta đang thêm K phần tử vào mảng và sau đó tìm giá trị trung bình của mảng kết quả. Với điều kiện, N + k là số lẻ.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào -

array = {23, 65, 76, 67} ; k =1

Đầu ra -

67

Để giải quyết vấn đề này, chúng tôi sẽ sắp xếp các phần tử đã cho theo thứ tự tăng dần và sau đó thêm k phần tử vào cuối mảng, tức là chúng tôi sẽ lấy k phần tử lớn hơn.

Điều kiện đưa ra là n + k lẻ. Vì vậy, giá trị trung bình có thể được tính bằng công thức, (n + k) / 2 .

Ví dụ

Chương trình tìm giá trị trung bình,

#include <bits/stdc++.h>
using namespace std;
int findMedianAfterK(int arr[], int n, int K) {
   sort(arr, arr + n);
   return arr[((n + K)/2)];
}
int main() {
   int array[] = {3,56, 8, 12, 67, 10 };
   int k = 3;
   int n = sizeof(array) / sizeof(array[0]);
   cout<<"The median after adding "<<k<<" elements is "<<findMedianAfterK(array, n, k);
   return 0;
}

Đầu ra

The median after adding 3 elements is 56