자바의 정석 네이버 카페에서 나온 문제중 하나 
초등학교 3학년 문제라는데 ~~
0,1,2,3,4,5,6,7 값을 가지고 4자리씩 2개의 값을 만들어 각 값의 차를 구해서 가장 적은 차이인 값은?
풀이)
수학 알고리즘같은건 없고 그냥 순차적으로 반복문으로 처리함
반복문으로 중복되지 않은 최소 01234567 값 부터 최대값 76543210까지 반복하면서
8과 9가 나올경우 에는 값에서 제외 해버리고 
또한 해당 값에서 숫자가 중복될 경우에도 제외
예) 76543200 일경우에도 제외
그렇게 해서 값을 구한다.
답은 
4012 - 3765
찾은 최소 값은 : 247
JAVA소스이다.
 
public class cho3 {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 두수의 차이가 가장 작은 차이가 생기도록 네자리 정수 만들어 차이를 구하시오
		// 이용할 수 있는 숫자 0,1,2,3,4,5,6,7
		
		int rand_number = 76543210;
		String rand_check;
		String rand_check2;
		int num1;
		int num2;
		int min_num = 76543210;
		String TempNum1;
		String TempNum2;
		
		for (int i = 01234567; i<=rand_number; i++)
		{
			rand_check2 = ""+i;
			rand_check = fillZero(rand_check2, 8);
			if (BiCheck(rand_check) == false) continue;
			
			TempNum1 = rand_check.substring(0,4);
			TempNum2 = rand_check.substring(4,8);
			
			num1 = Integer.parseInt(TempNum1);
			num2 = Integer.parseInt(TempNum2);
			
			if (min_num > num1-num2 && num1-num2 > 0)
			{
				min_num = num1-num2;
				System.out.println(TempNum1 + " - " + TempNum2);
			}
		}
		
		System.out.println("찾은 최소 값은 : " + min_num);
	}
	private static boolean BiCheck(String i) {
		// TODO Auto-generated method stub
		String tmp = i;
		String check_tmp;
		String tmp1;
		// System.out.println("BiCheck : " + tmp);
		for (int x=0; x < tmp.length() ; x++)
		{
			check_tmp = tmp.substring(x,x+1);
		
			if (check_tmp.equals("8") || check_tmp.equals("9") ) return false;
			for (int y=0; y<tmp.length(); y++)
			{
				if (x == y) continue;
				
				tmp1 = tmp.substring(y,y+1);
				
				if (check_tmp.equals(tmp1))
					return false;
			}
		}
		return true;
	}
	private static String fillZero(String randCheck, int i) {
		// TODO Auto-generated method stub
		
		int len;
		String Temp="";
		String Ret="";
		
		len = randCheck.length();
		
		for (int d = 0 ; d < i - len ; d++)
		{
			Temp = Ret;
			Ret = Temp + "0";
		}
		
		Temp = Ret;
		Ret = Temp + randCheck;
		
		return Ret;
	}
}