Reverse digits of an integer.
Example1:x = 123, return 321Example2: x = -123, return -321
click to show spoilers.
Note:
The input is assumed to be a 32-bit signed integer. Your function should **return 0 when the reversed integer overflows.
Subscribe to see which companies asked this question.
這個(gè)題討厭的地方就是判斷溢出,開(kāi)始的想法是想著找到c語(yǔ)言最大的數(shù)值然后進(jìn)行比較,后來(lái)發(fā)現(xiàn)不行,大概是因?yàn)樵瓉?lái)不是溢出的后來(lái)反轉(zhuǎn)之后就溢出了?
int reverse(int x) {
int y = 0;
while(x != 0){
int z = y * 10 + x % 10;
if(z/10 != y){
return 0;
}
y = z;
x = x/10;
}
return y;
}
這個(gè)題之前就做過(guò)也查到過(guò)別人的做法,所以也沒(méi)有什么自己的想法,就記錄一下再次寫的菜問(wèn)題吧。
1:
while這個(gè)里面的條件,一開(kāi)始寫了x%10 != 0; 輸入為100,這種10的整數(shù)倍就不行了,想了一下改為了現(xiàn)在這個(gè)
2:
這個(gè)?10的是之前看別人的做法。驗(yàn)證了一下溢出的確實(shí)是?后不相等不知道為啥,而且想到了/10也忘了怎么放進(jìn)去了。下次再做一遍吧