【发布时间】:2021-09-04 02:49:59
【问题描述】:
给定 2 个整数,我们可以这样计算它们的平均值:
return (a+b)/2;
这是不安全的,因为 (a+b) 会导致溢出(旁注:有人可以告诉我这种情况下的正确术语可能是内存溢出吗?)
所以我们写:
return a+(b-a)/2;
可以在n 数字上实现相同的技巧吗?如何实现?
【问题讨论】:
-
缓冲区溢出,这是正确的术语吗?
-
整数溢出通常是术语
-
@dratenik 不过注意评论很重要:
this algorithm will have severe underflow issues -
@dratenik 对于整数,您会遇到与问题中的两个有值示例相同的溢出问题。