回文数:
非常经典的一道题目,本次附上两种处理思路:
1.字符串处理法:
先展示代码:
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) {
Scanner nc=new Scanner(System.in);
StringBuilder num= new StringBuilder(nc.nextLine());
PrintStream ps;
try {
ps = new PrintStream(System.out, true, "utf-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
if(fun1(num)){
ps.println(num+"是回文数");
}else {
ps.println(num+"不是回文数");
}
}
static boolean fun1(StringBuilder num){
String lastNum=num.toString();
StringBuilder newNum =new StringBuilder(num);
newNum.reverse();
String NewNum=newNum.toString();
if(NewNum.equals(lastNum)){
return true;
}else {
return false;
}
}
}
首先,程序通过Scanner类的nextLine()方法获取用户输入的一行字符串,将其存储在一个StringBuilder类型的变量num中。
然后,程序调用fun1()方法来判断用户输入的字符串是否为回文字符串。在fun1()方法中,程序将原字符串num转换为一个String类型的变量lastNum,并将其存储在一个StringBuilder类型的变量newNum中。接着,程序使用newNum.reverse()方法将字符串反转,并将反转后的字符串转换为一个String类型的变量NewNum。最后,程序使用equals()方法比较原字符串和反转后的字符串是否相等,如果相等,则说明原字符串为回文字符串。
最后,程序根据fun1()方法的返回值输出判断结果。如果返回值为true,则输出"num是回文数";否则,输出"num不是回文数"。
2.数字处理法:
代码如下:
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
public class demo1 {
public static void main(String[] args) {
Scanner nc=new Scanner(System.in);
long num=nc.nextLong();
PrintStream ps;
try {
ps = new PrintStream(System.out, true, "utf-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
if(fun(num)){
ps.println(num+"是回文数");
}else {
ps.println(num+"不是回文数");
}
}
static boolean fun(long x){
long num=x;
long answer=0;
if(x<0){
return false;
}else{
while(num!=0){
long ge=num%10;
num/=10;
answer=answer*10+ge;
}if(answer==x){
return true;
}else{
return false;
}
}
}
}
首先,在主函数中利用Scanner类获取用户输入的整数值
接着,调用fun函数判断该整数是否为回文数。fun函数的参数为long类型的整数x。首先,定义一个long类型的变量num,用于存储输入的整数。定义另一个long类型的变量answer,初始值为0,用于存储反向排列后的结果。
如果输入的整数小于0,直接返回false,因为负数不是回文数。如果输入的整数大于等于0,将该整数的每一位数分离出来,分别存入变量ge中,然后将该数除以10,直到该数变为0为止。在每一次循环中,更新answer的值为原来的10倍加上ge的值,即将输入的整数反向排列。最后,如果answer等于输入的整数x,说明该整数为回文数,返回true;否则返回false。
在主函数中,根据fun函数的返回值输出相应的结果。如果是回文数,输出"是回文数",否则输出"不是回文数"。