【发布时间】:2015-10-17 09:51:07
【问题描述】:
我正在运行一个在 for 循环中添加数字的 C++ 程序:
int y = 0;
for (int i=0; i<NUM; i++) {
int pow = 1;
for (int j=0 j<i; j++) {
pow *= 10;
}
y+= vec[i]*pow; // where vec is a vector of digits
}
但我不确定如何检查是否发生溢出。有什么办法吗?
【问题讨论】:
-
顺便说一句,您可以通过保留
pow的最后一个值并将其每次迭代仅乘以 10 来将算法从二次变为线性。 -
确实更有意义,谢谢
标签: c++ integer integer-overflow