天天看点

实现统计同构数关键算法。编写程序输出 2~99 之间的同构数。同构数是指这个数为该数平方的尾数,例如 5 的平 方为 25,6 的平方为 36,25 的平方为 625,则 5、6、25 都为同构数。

实现统计同构数关键算法。编写程序输出 2~99 之间的同构数。同构数是指这个数为该数平方的尾数,例如 5 的平 方为 25,6 的平方为 36,25 的平方为 625,则 5、6、25 都为同构数。

注意:调用带有一个输入参数的函数(或方法)实现,此函数(或方法)用于判断某个整数

是否为同构数,输入参数为一个整型参数,返回值为布尔型(是否为同构数)

public class week3 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("输入一个整数,判断是否是同构数:");
		if(isTGNumber(in.nextInt())){
			System.out.println("这是一个同构数");
		}else{
			System.out.println("这不是一个同构数");
		}
	}
	//判断是否为同构数
	public static boolean isTGNumber(int number){
		int numberPow  = (int) Math.pow(number, 2);//该数的平方
		//获取该数的个位数
		System.out.println(number);
		int numg = number / 1 % 10;//获取该数的个位数
		int nums = number / 10 % 10;//获取该数的十位数
		System.out.println(numberPow);
		int g = numberPow / 1 % 10;//获取开平方后的个位数
		int s = numberPow / 10 % 10;//获取开平方后的十位数
		//判断个位和十位是否相同
		//如果输入的是一位数
		if(nums == 0){
			//只判断个位,不判断十位数
			if(numg == g){
				return true;
			}
		//输入的是两位数
		}else if(numg == g && nums == s){
			return true;
		}
		return false;
	}
}