C++ 程式找出元素之和為 s 的最大可能中位數


假設我們有兩個數字 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

更新於:03-Mar-2022

267 次瀏覽

開創你的 職業生涯

透過完成課程獲得認證

開始學習
廣告