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); } }}