求一個知足2*X ,3*X,4*X,5*X,6*X 五個數得出的結果有相同的數字,只是順序不一樣

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;
	}
}
相關文章
相關標籤/搜索