小编典典

计算输入数字的最小值,最大值和平均值

algorithm

有没有一种方法可以在不使用数组的情况下计算所有数字的平均值/最小值/最大值?每秒最多需要计算10,000个数字。


阅读 375

收藏
2020-07-28

共1个答案

小编典典

是,

保留初始化为高值的最小变量,并在看到较低值时对其进行更新。

用最大变量执行相反的操作。

将所有数字相加,然后将总和除以总数即可得到平均值。

以下代码不进行边界检查(例如count> 0,total不会溢出),但是应该可以使您有所了解:

int minimum = // Initialize to large #, in C# would be int.MaxValue
int maximum = // Initialize to most negative #, in C# would be int.MinValue
int count = 0;
int total = 0;

void StatsForNewNumber(int number)
{
    if (number < minimum) minimum = number;
    if (number > maximum) maximum = number;
    count++;
    total += number;
}

int Average()
{
    return total / count;
}
2020-07-28