天天看點

實作統計同構數關鍵算法。編寫程式輸出 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;
	}
}