【发布时间】:2014-06-08 20:09:21
【问题描述】:
我在一次采访中被问到这个问题。 我被要求计算数字 x1,x2,x3,...xn 的平均值
class Iterator {
bool hasNext;
int getNext();
}
// 所以它归结为这样的:
double average (Iterator & it) {
double average = 0;
double sum = 0;
int len = 0;
while (it.hasNext == true) {
sum += it.getNext();
}
if (len > 0)
average = sum / len;
}
面试官说列表大小未知,可能很大,所以 sum 会溢出。他问我如何解决溢出问题,我通过跟踪我们超过最大数量的次数等来回答,他说了一些关于推入堆栈、平均值和长度的问题,我从来没有真正理解他通过推这些的解决方案2个变量进入某种列表?有人有线索吗?
【问题讨论】:
-
你写的是“计算总和”,你的意思是平均数,对吧?