力扣-整数反转

反转类

1.整数反转

import java.util.*;
public class second {
    
    
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		Scanner a=new Scanner(System.in);
		int x=a.nextInt();
		int res=0;
		while(x!=0) {
    
    
			int num=x%10;
			if(res>214748364||(res==214748364&&num>7))		//判断是否溢出
				System.out.println("该输入不合法,溢出");
			if(res<-214748364||(res==214748364&&num<-8))	//判断是否溢出
				System.out.println("该输入不合法,反向溢出");		
			x=x/10;											//缩进
			res=res*10+num;									//将提取出来的尾数向前进
		}
		System.out.println(res);
	}
}
整数反转的思路是将数字尾数提出来插入到另一个空白数,以此循环反复,
后续再加入尾数进入这个空白数时,需要将这个空白书中的数*10先前进一位,
每加一个尾数就将前面的数前进一位即可达到反向排列的目的,
在最后输出即可。
有些题目会规定输入数据的大小,反转后可能会有溢出情况,所以
可以把数据类写为long型,或者用if语句直接返回错误即可;

2.回文数判断

import java.util.*;
public class third {
    
    
public static void main(String[] args) {
    
    
	Scanner a=new Scanner(System.in);
	int num=a.nextInt();
	int res=0,y=0;
    int h=num;
    boolean aa=false;
    while(h!=0){
    
    
        res=h%10;
        y=y*10+res;
        h=h/10;
    }						//数据反转
    if(y==num)
    	aa=true;
    if(y<0)
    	aa=false;
    System.out.println(aa);
	}
}

回文数的判断的核心仍是数据的反转,只是又增加了一个判断操作,判断反转前后是否相等,二者可算为同一类型。

猜你喜欢

转载自blog.csdn.net/weixin_45956604/article/details/109403700