1、回文数:一种数字,如:12321, 这个数字正读是12321,倒读也是12321,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。

     回文数判别算法(java实现)

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class HuiWenShu {
                                                                                                                                                                        
    public static void main(String[] args) throws Exception{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Please input texts:");
        String inputString=br.readLine();
        int input = Integer.parseInt(inputString);
        checkHWS(input);
                                                                                                                                                                            
    }
    //判断一个数是否为回文数
    public static void checkHWS(int input){
        int reverse = 0,temp = input;    
        while(temp>0){
            reverse = reverse*10+temp%10;
            temp = temp/10;
        }
        if(input==reverse)System.out.println(input+"是回文数!");
        else System.out.println(input+"不是回文数!");
                                                                                                                                                                                
    }

2、平方回数:一个回文数,它同时还是某一个数的平方,这样的数字叫做平方回数。例如:121。

  算法要求:求出规定范围内的所有平方回数(java实现)

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class HuiWenShu {
          
    public static void main(String[] args) throws Exception{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Please input start:");
        String startString=br.readLine();
        int start = Integer.parseInt(startString);
        System.out.print("Please input end:");
        String endString=br.readLine();
        int end = Integer.parseInt(endString);
        getAllHWS(start,end);
    }
    //判断一个数是否为回文数
    public static boolean checkHWS(int input){
        int reverse = 0,temp = input;    
        while(temp>0){
            reverse = reverse*10+temp%10;
            temp = temp/10;
        }
        if(input==reverse)return true;
        else return false;
                  
    }
          
    //输出给定范围内的,所有平方回数
          
    public static void getAllHWS(int start,int end){
        double extractionOfStart =  Math.sqrt(start);
        int startTemp = (int) Math.ceil(extractionOfStart);
        double extractionOfEnd =  Math.sqrt(end);
        int endTemp = (int) Math.floor(extractionOfEnd);
        for(int i = startTemp;i<=endTemp;i++){
            int temp = i*i;
            boolean flag = checkHWS(temp);
            if(flag)System.out.println(temp);    
        }
    }
}