【发布时间】:2015-09-11 19:27:37
【问题描述】:
我要计算(a+b)/pow(2,s)。
-10^10 ≤ s ≤ 10^10
1 ≤ a, b ≤ 10^9
但即使我将结果存储在 long long 中,它也会给出 0。鉴于答案在 long 的范围内,我该如何计算结果?
【问题讨论】:
-
改用浮点数或 bignum 库。
-
你用这么大的数字到底是为了什么?你想完成什么?
-
旁白:
pow用于 浮点 求幂;进行整数计算时不应该使用它。 -
2 的 10 ^10:th power 太大了,Wolfram Alpha 被它呛住了。 10^9:th power is ~4.65 * 10 ^ 301029995, so for all the actual purpose, the result is 0. (宇宙中的原子数估计为 10 ^ 80。)
-
您确定是
-10^10 ≤ s ≤ 10^10而不是-10^10 ≤ pow(2,s) ≤ 10^10?