1. 程式人生 > >7. Reverse Integer(反轉整數)

7. Reverse Integer(反轉整數)

有符號 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(反轉整數)