整数反转显示

个人解题思路,仅供参考:

import java.util.Date;

public class Test {

    /**
     * 将给出的32位整数x翻转。
     * 例1:x=123,返回321
     * 例2:x=-123,返回-321
     *
     * 你有注意到翻转后的整数可能溢出吗?因为给出的是32位整数,则其数值范围为[−2^{31}, 2^{31} − 1]
     * 翻转可能会导致溢出,如果反转后的结果会溢出就返回 0。
     */
    public static void main(String[] args) {
        int n = -1234567891;
        System.out.println(new Date());
        System.out.println(reverse(n));
        System.out.println(new Date());
        System.out.println(reverse1(n));
        System.out.println(new Date());
    }

    /**
     * 字符串反转法
     * @param x int整型
     * @return int整型
     */
    public static int reverse (int x) {
        if (x == 0) return 0;
        Boolean flag = true;
        if (x < 0) {
            flag = false;
            x = -x;
        }
        String temp = x+"";
        String newStr = "";
        for (int i = temp.length()-1;i >=0 ; i--)
            newStr += temp.charAt(i);

        x = Integer.valueOf(newStr);
        if (!flag) x = -x;
        return x;
    }


    /**
     * 求余法
     * @param x
     * @return
     */
    public static int reverse1(int x) {
        int ans = 0, f = 1;
        if (x < 0) {
            f = -1;
            x = -x;
        }
        while (x != 0) {
            ans = ans * 10 + x % 10;
            x /= 10;
        }
        return ans * f;
    }
}

运行结果:

posted @ 2021-03-05 17:13  时间会有答案  阅读(81)  评论(0编辑  收藏  举报