題目描述:
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
注意:
假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回 0。
分析:
獲取整數的最低位的方法之一:
while( x != 0)
{
int pop = x % 10;
x /= 10;
}
完整代碼:
class Solution {
public:
int reverse(int x) {
//聲明一個變量,表示反轉之後 的結果
int result = 0;
while( x != 0)
{
//獲取x 的最低位(餘數)
int pop = x % 10;
//獲取 x 的商
x /= 10;
//判斷反轉之後的結果是否在範圍之內
if(result > INT_MAX / 10 || result < INT_MIN / 10)
{
return 0;
break;
}
//計算反轉之後的結果
result = result * 10 + pop;
}
//返回最終的結果
return result;
}
};