一、数学背景介绍:
所谓“自守数”,是指一个数的平方的尾数等于该数自身的自然数。
例如,6的平方等于36,尾数是6,所以6是自守数;25的平方是625,尾数是25,所以25是自守数。
二、要求编写代码实现找出给定范围以内的自守数。
package com.js.math;
import java.util.Scanner;
/**
* 自守数
* 一个数的平方的尾数等于该数自身
* @author js
*
*/
public class Automorphic {
public static void main(String[] args) {
int boundary = 0;
int a = 0;//待判断整数
int multi = 0;
String tmpA = null;//待判断整数转换的字符串
String tmpMulti = null;
int lengthA = 0;
int lengthMulti = 0;
int count = 0;
System.out.println("请输入查找范围...");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
boundary = scanner.nextInt();
for(a=1;a<boundary;a++){
multi = a*a;
tmpA = String.valueOf(a);
lengthA = tmpA.length();
tmpMulti = String.valueOf(multi);
lengthMulti = tmpMulti.length();
for(int j = 0;j<=lengthA-1;j++){
if(tmpA.charAt(lengthA-1-j)==tmpMulti.charAt(lengthMulti-1-j))
count++;
}
if(count==lengthA){
System.out.println("找到一个自守数:"+a);
}
count = 0;
}
}
}
}