(for 循環)編程找出四位整數 abcd 中滿足 (ab+cd)(ab+cd)=abcd 的數


優化之前:

public class Exc2_8{
	public static void main(String[] args){
		for(int abcd = 1000 ; abcd <= 9999 ; abcd++){
			int ab = abcd/100;
			int cd = abcd%100;
			if ((ab+cd)*(ab+cd)==abcd) System.out.println(abcd);
		}
	}
}  

優化思路:
            優化過程:先了解完全平方數的概念;一個數能表示成某個數的平方的形式,例如6*6=36,36就是完全平方數
            這個題就是求1000-9999內的一個數的個位十位和百位千位相乘等於自身的數。
            先知道 32*32=1024,100*100=10000
            則,兩個數相乘是一個四位數,這這兩個數一定是32-99內的共68個數
 優化之后:

public class Exc2_8{
	public static void main(String[] args){
		//優化之后
		for(int n = 32 ; n<=99; n++){
			int abcd = n*n;
			int ab = abcd/100;
			int cd = abcd%100;
			if (ab+cd == n) System.out.println(abcd);
		}
	}
}  

運行結果:

        2025
        3025
        9801


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM