import java.math.BigInteger; import java.util.Arrays; /* * 程序要求: * 一個整數乘以2,乘以3,乘以4,乘以5,乘以6獲得的數的各個位是相同的,只是順序不一樣,求知足條件的最小正整數; * 好比:125874 乘以2等於:251748 */ public class MixMulti { public static void main(String[] args) { MixMulti m = new MixMulti(); System.out.println(m.mixMulti()); } public BigInteger mixMulti() { BigInteger initB = new BigInteger("1"); BigInteger b2 = new BigInteger("2"); BigInteger b3 = new BigInteger("3"); BigInteger b4 = new BigInteger("4"); BigInteger b5 = new BigInteger("5"); BigInteger b6 = new BigInteger("6"); char[] ch1 = null; char[] ch2 = null; char[] ch3 = null; char[] ch4 = null; char[] ch5 = null; char[] ch6 = null; boolean bl = true; while(bl) { BigInteger B2 = initB.multiply(b2 ); BigInteger B3 = initB.multiply(b3); BigInteger B4 = initB.multiply(b4); BigInteger B5 = initB.multiply(b5); BigInteger B6 = initB.multiply(b6); //依次轉換爲字符串 String str1 = initB+""; String str2 = B2+""; String str3 = B3+""; String str4 = B4+""; String str5 = B5+""; String str6 = B6+""; //再轉換爲字符數組 ch1 = str1.toCharArray(); ch2 = str2.toCharArray(); ch3 = str3.toCharArray(); ch4 = str4.toCharArray(); ch5 = str5.toCharArray(); ch6 = str6.toCharArray(); //利用Arrays進行排序 Arrays.sort(ch1); Arrays.sort(ch2); Arrays.sort(ch3); Arrays.sort(ch4); Arrays.sort(ch5); Arrays.sort(ch6); //把排好序的字符數組轉換爲字符串方便比較; str1 = String.valueOf(ch1); str2 = String.valueOf(ch2); str3 = String.valueOf(ch3); str4 = String.valueOf(ch4); str5 = String.valueOf(ch5); str6 = String.valueOf(ch6); //判斷排序後是否都相等 if(str1.equals(str2) && str2.equals(str3) && str3.equals(str4) && str4.equals(str5) && str5.equals(str6)) { bl = false; }else { initB = initB.add(new BigInteger("1")); // } } return initB; } }