<分区>
我需要计算 n 个数字的平均值。 N 在编译时是未知的。每个数字都可以是 int64_t 类型,但我知道 average 也适合 int64_t 类型。问题是 n 个数字的总和对于 int64_t 来说可能太大了。 有什么建议吗?
<分区>
我需要计算 n 个数字的平均值。 N 在编译时是未知的。每个数字都可以是 int64_t 类型,但我知道 average 也适合 int64_t 类型。问题是 n 个数字的总和对于 int64_t 来说可能太大了。 有什么建议吗?
最佳答案
没有溢出的两个nos的平均值
Average = (a / 2) + (b / 2) + (((a % 2) + (b % 2)) / 2)
这也可以扩展到 n 个数字。
假设你有 n 个数字,来自 N1, N2....Nn-1, Nn
Average = (N1 / n) + (N2 / n) +.....+ (Nn-1 / n) + (Nn / n)
+
((N1 % n) + (N2 % n) +.....+ (Nn-1 % n) + (Nn % n)) / n
关于c++ - 如何计算 int64_t 的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56663116/