1. 程式人生 > >整數翻轉

整數翻轉

給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:

輸入: 123
輸出: 321

 示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:

假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [-2147483648~2147483647]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

思路:

負號不用管

需要注意數值範圍,不能溢位

核心是 %10 返回個位 , /10後再 %10返回十位 。。。

程式碼:

class Solution{

public:

      int reverse(int x){

           int res = 0;

           while(x != 0){

                   if(abs(res) > INT_MAX / 10) return 0;

                   res = res*10 + x % 10;     

                   x /= 10;

}

return res;

}

};