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 次浏览

开创你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.