我在採訪中被問到了這個問題。 有人問我計算數字X1,X2,X3,...的平均XNJava中整數的溢出
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;
}
面試官說列表大小是未知的,它可以是非常大的,所以總和可以溢出。他問我如何解決溢出問題,我通過跟蹤我們如何超過最大數量等等來回答問題,他說了推入堆棧的一些事情,平均數和長度,我從來沒有真正理解他的解決方案,通過推動這些2個變量進入某種列表?任何人都有線索?
相關的問題: http://stackoverflow.com/questions/1657834/how-can-i-check-if - 在數字中乘以兩個數字將導致溢出 http://stackoverflow.com/questions/12226634/how-to-prevent-integer-overflow-in-java-code –
你寫了「計算總和「,你的意思是平均值,對嗎? – icza