【发布时间】:2014-03-22 18:55:39
【问题描述】:
是否有可能在对一个数字执行 10^9 + 7 的模数 (%) 之后,数字可能仍然超出范围。
我在 CodeChef http://www.codechef.com/problems/FIRESC 上做这个问题并且得到了一个错误的答案,在查看了作者的解决方案后,我将我的最终答案类型更改为 long long int 为 int 并得到了正确的答案。为什么会这样?
【问题讨论】:
-
我的第一直觉是您使用的变量的宽度太小,无法进行计算。尝试无符号长长。它发生的原因是每个变量可以表示多少位。 int 只能做 ~65k 左右,而 long int 最多只能表示 ~4.5b 左右。
标签: c++