华为OD机试-如何让图像像素平均值最接近128(C语言实现)
题目描述:给定一个长度为n的数组img,表示一个图像每个像素点的值,值域为[0, 255]。现需要将每个像素点的值加上一个整数k(k可以为负数),得到新的数组newImg。要求新数组的像素平均值最接近中位值128。请输出满足条件的最小整数k。输入描述:第一行为一个正整数n,表示像素个数;第二行为n个整数,表示原始图像的像素值。输出描述:一个整数k。补充说明: • 1 <= n <= 100; • 如有多个整数k都满足条件,输出最小的k; • 若像素值加上k后超出了[0, 255]的范围,则将其截取到该范围内。例如newImg="-1 -2 256"会被修改为"0 0 255"; • 图像像素值的平均数为所有像素值之和除以像素个数; • 数组中位值为排序后中间那个数或两个中间数的平均数。示例输入:4 0 0 0 0
示例输出:128
下载地址
用户评论