10000以内的回文数和判断一个数字是否是回文数

10000以内的回文数和判断一个数字是否是回文数

  • 1、10000以内的回文数
  • 2、判断一个数字是否是回文数

1、10000以内的回文数

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
例如121,1221,13131……
10000以内的回文数分为3种情况:两位数,三位数和四位数
因为回文数正序和倒序都是一样的数 所以用两个for循环就可以解决
看代码:

public class demo_06 {
    public static void main(String[] args) {
        //10000以内的回文
        for (int i = 1; i <=9 ; i++) {
           	for (int j = 0; j <=9 ; j++) {
           		System.out.println(i+""+i);//两位数
           		System.out.println(i+""+j+""+i);//三位数
              	System.out.println(i+""+j+""+j+""+i);//四位数
            }
        }
    }
}

2、判断一个数字是否是回文数

import java.util.Scanner;
public class demo_06 {
    public static void main(String[] args) {
//        判断一个数字是否为回文数字
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int temp=n;
        int reserve=0;
        while (n>0){
            reserve=n%10+reserve*10;
            n=n/10;
        }
        if (temp==reserve){
            System.out.println(true);
        }else System.out.println(false);
    }
}

这个算法的解法就是:将这个数进行翻转对比 如果相等就是回文数字
具体做法如下:

每次将n进行取余操作 ( %10),取出最低的数字加到reserve的后面:reserve=n%10+reserve*10;并且每取一个最低位数字,n都要自除以 10当n=0的时候就表示reserve就是n翻转后的数字,把他和之前的n进行对比

你可能感兴趣的:(java,idea,回文,算法)