我的这个方法比较蠢,可以浅浅参考一下
2023-04-13 14:50:41
发布于:浙江
179阅读
0回复
0点赞
解题思路详见代码里的注释
//找到中位数,所有数值与中位数的差就是答案
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,mid;
cin >> n;
int a[n];
//输入数组
for (int i=0;i<n;i++)
{
cin >> a[i];
}
//获取数组的中位数mid
sort(a, a+n);
if(n%2 == 0) mid=a[n/2 -1];
else mid=a[(n+1)/2 -1];
int count,res=0;
//计算每个数与中位数的差
for (int i=0;i<n;i++)
{
if (a[i]>mid) count=a[i]-mid;
else if (a[i]<mid) count=mid-a[i];
else count =0;
res=res+count;
}
cout << res;
return 0;
}
全部评论 1
哥,这答案貌似不对,但是思路很好
2023-06-09 来自 浙江
0
有帮助,赞一个