当前位置:  开发笔记 > 程序员 > 正文

查找整数数组的平均值

如何解决《查找整数数组的平均值》经验,为你挑选了1个好方法。

假设您有一个int数组(使用任何固定大小的int语言).你如何计算最接近它们平均值的int?

编辑:要清楚,结果不必存在于数组中.也就是说,对于输入数组[3,6,7],预期结果是5.另外我想我们需要指定一个特定的舍入方向,所以如果你同样接近两个数字则向下舍入.

编辑:这不是作业.我五年没有做过功课了.这是我第一次使用stackoverflow,所以请你好!

编辑:总结和划分的明显方法可能会溢出,所以我试图想出一种对于大型数组和大型整数都是溢出安全的方法.我认为正确处理溢出(没有作弊和使用不同的类型)是这个问题中最困难的部分.



1> dsimcha..:

这是一种快速,合理的溢出安全方式,并且可以在事先不知道元素数量时工作.

// The length of someListOfNumbers doesn't need to be known in advance.
int mean(SomeType someListOfNumbers) {  
    double mean = 0, count = 0;
    foreach(element; someListOfNumbers) {
        count++;
        mean += (element - mean) / count;
    }
    if(count == 0) {
        throw new UserIsAnIdiotException(
                  "Problem exists between keyboard and chair.");
    }
    return cast(int) floor(mean);
}

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有