7. Reverse Integer(反轉整數)
阿新 • • 發佈:2018-08-04
有符號 long 保存 輸入 || bre 解答 求余 整數溢出
給定一個 32 位有符號整數,將整數中的數字進行反轉。
示例 1:
輸入: 123 輸出: 321
示例 2:
輸入: -123 輸出: -321
示例 3:
輸入: 120 輸出: 21
註意:
假設我們的環境只能存儲 32 位有符號整數,如果反轉後的整數溢出,則返回 0。
這個題目實際上就是一個簡單的除法和求余的問題的,唯一需要註意的地方就是int型整數反轉之後會有溢出的問題。於是開始的時候
想了一下就直接用long型來保存result。具體代碼如下:
int reverse(int x) { long result = 0; while(1) { result= result * 10 + x % 10; x = x / 10; if(x == 0) break; } if(result > INT_MAX|| result < INT_MIN) return 0; else return result; }
後來又看官方的解答,裏面的result依舊用int。代碼如下:
int reverse(int x) { int result = 0; while(1) { if(abs(result)>INT_MAX/10) return 0; result = result * 10 + x % 10; x = x / 10; if(x == 0) break; } return result; }
7. Reverse Integer(反轉整數)