c********t 发帖数: 5706 | 1 二爷,Divide Two Integers那题,你的程序为啥要转成long? 我没转,其他和你一样
,发现过不了OJ, time limit exceeded.
多谢! |
Q*******e 发帖数: 939 | 2 转成long, 是防止overflow
看看数字在计算机中的表示吧 |
c********t 发帖数: 5706 | 3 那加个判断防止overflow不行吗?
【在 Q*******e 的大作中提到】 : 转成long, 是防止overflow : 看看数字在计算机中的表示吧
|
c********t 发帖数: 5706 | 4 试了试,还真不行,因为过不了 dividend=-2147483648,绝对值变0, 结果为0。
这个点很tricky.
【在 c********t 的大作中提到】 : 那加个判断防止overflow不行吗?
|
Q*******e 发帖数: 939 | 5 不行, 比如8bit
数值表示-128~127
如果你取值绝对值 -(-128) = 128
放在8bit里面如何判断?
【在 c********t 的大作中提到】 : 那加个判断防止overflow不行吗?
|
c********t 发帖数: 5706 | 6 明白了,多谢!
【在 Q*******e 的大作中提到】 : 不行, 比如8bit : 数值表示-128~127 : 如果你取值绝对值 -(-128) = 128 : 放在8bit里面如何判断?
|
l*******b 发帖数: 2586 | 7 判断是能判断 a = -a,不是0就是INT_MIN。关键判断完了还是没办法处理。。。 |