原题有这样的提示“Didyounoticethatthereversedintegermightoverflow?Assumetheinputisa32-bitinteger,thenthereverseof1000000003overflows.Howshouldyouhandlesuchcases?”看到有人写了一个这样的答案intreverse(intx){intflag=x>0?1:-1,res=0;x=x>0?x:-x;while(x>0){if((2147483647.0-x%10)/10
2 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
(2147483647.0-x%10)/10 我的做法是直接用long型:publicintreverse(intx){intsign=1;if(x<0){sign=-1;x*=-1;}longresult=0;while(x!=0){result=result*10+x%10;if(sign*result>Integer.MAX_VALUE||sign*resultreturn0; x=x/10;}return(int)result*sign;
添加回答
举报
0/150
提交
取消