【題目描述】css
給出一個 32 位的有符號整數,你須要將這個整數中每位上的數字進行反轉。程序員
示例 1:spa
輸入: 123
輸出: 321
示例 2:code
輸入: -123
輸出: -321
示例 3:blog
輸入: 120
輸出: 21
注意:內存
假設咱們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231, 231 − 1]。請根據這個假設,若是反轉後整數溢出那麼就返回 0。leetcode
【題解】io
顛倒正負存在新的數裏,要從原來的數最後一位開始在新數裏累加class
便是 += x % 10循環
處理完第一個數,以後要處理第二位,也就是x % 100,若是加入循環,則循環條件設置爲:
x / 10
對於返回的整型re,每一次放入一個新的數時,原來的數左移一位,也就是:
re * 10
對於溢出的判斷我一開始的想法是直接讓int溢出,溢出以後re值正負顛倒,此時只須要判斷本來X的值正負與re不一樣便可
但是leetcode它報錯!!!它不讓我天然溢出!!!
好的我向平臺低頭
接下來就是把re設置成long int 判斷是否大於2^31 - 1或者小於-2^31 + 1
1 int reverse(int x){ 2 long int re = 0; 3 for(; x; x /= 10) 4 re = re * 10 + x % 10; 5 if (re > 2147483647 || re < -2147483648) 6 return 0; 7 else 8 return re; 9 }
代碼如上
我是一個菜鳥程序員,我從最簡單的簡單題慢慢作起,它雖然簡單,但我每一道都要作到最好