反转类
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);
}
}
回文数的判断的核心仍是数据的反转,只是又增加了一个判断操作,判断反转前后是否相等,二者可算为同一类型。