Reverse Integer(EASY)

来源:互联网 发布:网络共享凭据如何删除 编辑:程序博客网 时间:2024/05/17 03:40

题目

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321


解答

思考

System.out.println(Integer.MAX_VALUE);//打印最大整数:2147483647
System.out.println(Integer.MIN_VALUE);//打印最小整数:-2147483648
超出范围1)不可以赋值2)计算不正确,所以超出直接return 0。

源码

public class ReverseInteger {    public static void main(String args[]){//        int x = -2147483648;  //超出范围        ReverseInteger reverseInteger =  new ReverseInteger();        System.out.print(reverseInteger.reverse(x));    }    public int reverse(int x) {        int flag = x>0?1:-1;        x = Math.abs(x);  //超出范围,直接abs还是-2147483648,直接return 0。        int y = 0;        long count = 0;        while (x > 0) {                y = x % 10;            count = count * 10 + y;            x = x / 10;            if(count>Integer.MAX_VALUE){                return 0;            }        }        return (int)count*flag;    }//public int reverse(int x) {//    int sign=x<0?-1:1;//    x=Math.abs(x);//    long r=0;//    for ( ; x>0; x=x/10) {//        r= r*10+x%10;//        if (r>Integer.MAX_VALUE)//            return 0;//    }//    return (int)r*sign;//}}
0 0