- 博客(1)
- 收藏
- 关注
原创 runtime error: signed integer overflow: 859813556 * 4 cannot be represented in type ‘int‘
但是这里报了一个859813556 * 4超出int表示范围的错误。个人猜测是因为运行时遇到int*int的情况,内部会开一个临时的int变量用于存放结果,然后再去取余再去赋值给res,所以这里res设置成long long也没用,因为是在pown(3,a-1) * 4这一步溢出的和其他无关。理论上pown返回的int值无论乘多少,取余1000000007后的结果都不会超过int范围。拆开分步运算,这样运算就都在res这个long long的空间中,不会溢出。
2023-09-21 16:55:03 306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人