여기 까지의 로또

Posted 2015. 3. 26. 18:28

두가지 방법.

1. 이중포문을 사용해서 하나를 갯수만큼 비교 하는 방법

2. 이미 번호를 갯수만큼 깔아두고 특정 카운트 만큼 스왚하는 방법.

 

 

int lotto[] = new int[6];
/*
  //#1. 일반적인 포문
  int ball;
  while(true)
  {
   ball = (int)(Math.random() * 45 ) + 1;
   int i = 0;
   for( i=0 ; i < lotto.length ; i++ )
   {
    if( ball == lotto[i] ) break;
    if( lotto[i] == 0 )
    {
     lotto[i] = ball;
     break;
    }
   }
   if( i == lotto.length ) break;
  }
 
//  System.out.println("정렬 전");
  for( int i=0 ; i < lotto.length ; i++ )
  {
   System.out.print(lotto[i] + " ");
  }
*///#2. 정해 진 숫자를 늘어 뜨린후 섞는 방법
  int ball[] = new int[45];
  for( int i = 0 ; i < ball.length ; i ++){
   ball[i] = i+1;
  }
  for( int i = 0 ; i < 10000 ; i++ ){ // 10000번 섞는다
   int index = (int)(Math.random() * 45 );
   int temp = ball[0]; // 스왚을 이용해서 섞는군..
   ball[0] = ball[index];
   ball[index] = temp;
  }

  System.out.println("정렬 전");
  for( int i=0 ; i < 6 ; i++ ){ // 6개만 출력한다. 앞에꺼로.
   lotto[i] = ball[i];
   System.out.print(lotto[i] + " ");
  }
  
  System.out.println("\n정렬 후");
  for( int i = 0 ; i < lotto.length ; i++)
  {
   for( int j = 0 ; j <  lotto.length-1-i; j++ )
   {
    if( lotto[j] > lotto[j+1] )
    {
     // 크면 바꿈
     int temp = lotto[j];
     lotto[j] = lotto[j+1];
     lotto[j+1] = temp;
    }
   }
  }
  for( int k=0 ; k < 6 ; k++ )
  { 
   System.out.print(lotto[k] + " ");
  }
 }