プログラミングは1つの9ビットの整数を求めて、数字は1-9から構成して、すべての数字は1回しか現れません.そしてこの整数の前位は1で割り切れる、前二位は2で割り切れる、…というように、前九位は9で割り切れる.


構想分析:9ビットの整数は、繰り返さない1~9からなり、0がないことに注意して分析する.
各数字は1回しか現れず、最小数は123456789で、最大数は987654321です.
重複しない以上、1人ずつ取得し、9つの数字を比較すればよい.どのように比較して、9つの数字はa!=b&&a!=c......だめだ、
取得した数字を配列に入れ,バブルソート法により数字が重複しているかどうかを比較すればよい.バブルソートはソートにしか使えないとは言わないが...
コードを改良すれば使えます.
0ではなく、数字が異なる2つの条件が満たされた後、判断を続けます.
1サイクルで上位2位が2で除かれ,上位3位が3で除かれ,......,上位9位が9で除かれたと判断する.条件が出力を満たし、終了します.
答え:381654729
詳細コードは次のとおりです.
public class testLargeNumber {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] wei = new int[9]; //   
		int flag;
		int i, num,cnt=0,n,sum=0;//        0   

		for (i = 123456789; i <= 987654321; i++) {
			num = i; //   num,     i,    ,  !
			flag = 0;//          
			//      
			for (int j = 0; j < 9; j++) {
				wei[j] = num % 10;
//				System.out.println(wei[j]);
				num = num / 10;
			}
			//    0   
			for (int k = 0; k < 9; k++) {
				if (wei[k] == 0) {
					flag = 1;
					break;
				}
				for (int m = k + 1; m < 9; m++) {
					if (wei[k] == wei[m]) {
						flag = 1;
						break;//     
					}
				}
				if(flag==1){
					break;//     
				}
			}
			//   0       ,           
			if (flag == 0) {
				cnt=0;//    0
				sum=wei[8];
				for(n=8;n>=1;n--){
					sum=sum*10+wei[n-1];
					if(sum%(10-n)==0){
						cnt++; //    
					}
				}
				if(cnt==8){// 2  2    9  9   8 
					System.out.println(i); //    i ,   num   
				}
			}
		}
//		System.out.println(cnt);
	}
}