leetcode7.整数反转

public class LeetCode7 {
//数据存放
public static int num;
//依次存放单个数据单位
public static int newRec;
//存放反转数据,并初始化为0
public static int rec=0;
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要反转的数值:");
num=sc.nextInt();
/**
* while循环依次将原始数据个位数挪到新数据最顶位,并删除原始数据个位重新循环
* 做法:通过原始数据取余得到个位数据,然后移位到新数据
* 之后将原始数据除10,去掉原始数据最后一位。
* 第二次循环重新之前步骤,此时将新数据*10并与新个位数相加,得到一个新数据
* 例:1234->
* 4,添4
* 123->
* 3.43
* ...
*/
while (num!=0){
//获取个位数数值
newRec=num%10;
//存放数据(依次将个位数newRec挪到最高位)
if(rec>Integer.MAX_VALUE/10||(rec==Integer.MAX_VALUE/10&&newRec>7))System.out.println("0");
if(rec<Integer.MIN_VALUE/10||(rec==Integer.MIN_VALUE/10&&newRec<-8))System.out.println("0");
rec=rec*10+newRec;
num/=10;
}
System.out.println("该数值的反转数值为"+rec);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
}

/**
* 还需要判断是否溢出,如果溢出则需要返回0
* leetcode题解
* class Solution {
* public int reverse(int x) {
* int rec=0,newRec;
* while(x!=0){
* newRec=x%10;
* if(rec>Integer.MAX_VALUE/10||(rec==Integer.MAX_VALUE/10&&newRec>7))return 0;
* if(rec<Integer.MIN_VALUE/10||(rec==Integer.MIN_VALUE/10&&newRec<-8))return 0;
* rec=rec*10+newRec;
* x/=10;
* }
* return rec;
* }
* }
*/
原文地址:https://www.cnblogs.com/shudaixiongbokeyuan/p/13368959.html