สมมติว่าเรามีตัวเลขสองตัว n และ s เราต้องหาค่ามัธยฐานสูงสุดที่เป็นไปได้ของอาร์เรย์ขององค์ประกอบที่ไม่ใช่ค่าลบ n ตัว ดังนั้นผลรวมขององค์ประกอบจะเท่ากับ s
ดังนั้นหากอินพุตเป็นเหมือน n =3; s =5 ดังนั้นผลลัพธ์จะเป็น 2 เพราะสำหรับอาร์เรย์ [1, 2, 2] ผลรวมคือ 5 และค่ามัธยฐานคือ 2
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
m := floor of (n / 2) + 1 return floor of (s / m)
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <bits/stdc++.h> using namespace std; int solve(int n, int s) { int m = n / 2 + 1; return s / m; } int main() { int n = 3; int s = 5; cout << solve(n, s) << endl; }
อินพุต
3, 5
ผลลัพธ์
2