设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数
回文数的检验一直是算法基础中常考的题目,这里出两种方法来解决回文数检验的问题
解法一:取数字末位乘10累加起来,如最后结果如果跟原数字相等则为回文数
import java.util.Scanner;
/**
* 回文数
* @author Administrator
*
*/
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
if(n==f(n))
System.out.println("yes");
else
System.out.println("no");
input.close();
}
static int f(int n){
int t = 0;
while(n!=0){
t =t*10+n%10;
n/=10;
}
return t;
}
}
解法二:将数字化为字符串,再将字符串反转,最后比较字符串
import java.util.Scanner;
/**
* 回文数
* @author Administrator
*
*/
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String s = "" + n;
if(s.equals(f(s)))
System.out.println("yes");
else
System.out.println("no");
input.close();
}
/**
*逆转字符串
* @param s
* @return
*/
static String f(String s){
if(s.length()==1) return s;
return f(s.substring(1)) + s.charAt(0);
}
}