JAVA

210810_배열+로또(중복체크)

요옫 2021. 8. 10. 14:37

//6개의 로또 번호 생성

int[]lotto=new int[6];

 

//임의의 수를 로또변수에 발생시켜서 넣어준다

for(int i=0;i<lotto.length;i++)

{

//1~45까지의 랜덤수 발생

lotto[i]=(int)(Math.random()*45)+1; 

//중복체크

for(int j=0;j<i;j++)  //범위가 j<i

{

//만약 숫자가 중복이 되면

    if(lotto[i]==lotto[j])

{

i--;  //같은 번지에 다시 값을 구하기 위해서

break;  //i++로 다시 돌아가게 됨

}

}

}

 

//오름차순 정렬

for(int i=0;i<lotto.length-1;i++)

{

for(int j=i+1;j<lotto.length;j++)

{

if(lotto[i]>lotto[j])

{

int tmp=lotto[i];

lotto[i]=lotto[j];

lotto[j]=tmp;

}

}

}

 

//오름차순 다른 방법

//Arrays.sort(lotto);

 

//출력

for(int i=0;i<lotto.length;i++)

{

System.out.print(lotto[i]+" ");    //또는 System.out.printf(lotto[i]);

}

System.out.println(); 

 

//결과

1 12 13 22 33 41 

 

 

~~~~~~~~~~~~~~~~~~~~

 

(예제)

//로또구매금액에 따른 출력

//로또 1회 비용 1000원

//로또 구매 금액?

//5000원

//1회: 1,3,5,48,26,44

//2회:

//5회:

 

 

int[]lotto=new int[6];

int price=0;

 

Scanner sc=new Scanner(System.in);

 

System.out.println("로또 구매 금액?");

price=sc.nextInt();

 

if(price<1000)

{

System.out.println("금액 부족");

return;

}

 

for(int n=0;n<price/1000;n++)  //횟수

{

System.out.printf("%3d회: ",n+1);

 

//임의의 수를 로또 변수에 발생

for(int i=0;i<lotto.length;i++)

{

lotto[i]=(int)(Math.random()*45)+1;

//중복처리

for(int j=0;j<i;j++)

{

if(lotto[i]==lotto[j])

{

i--;

break;

}

}

}

//오름차순 정렬

for(int i=0;i<lotto.length-1;i++)

{

for(int j=i+1;j<lotto.length;j++)

{

if(lotto[i]>lotto[j])

{

int tmp=lotto[i];

lotto[i]=lotto[j];

lotto[j]=tmp;

}

}

}

 

//출력

for(int i=0;i<lotto.length;i++)

{

System.out.printf("%5d",lotto[i]);

}

System.out.println();

}

 

//결과

로또 구매 금액?

5000

  1회:     4    6   25   31   37   44

  2회:     1    3   10   11   18   44

  3회:     9   10   15   17   28   44

  4회:     2    5    8   15   34   44

  5회:     2    4   32   36   42   45

'JAVA' 카테고리의 다른 글

210810_2차원배열+빙고  (0) 2021.08.10
210810_2차원 배열  (0) 2021.08.10
210810_배열+띠구하기  (0) 2021.08.10
210810_tmp(빈그릇)+순서변경+오름차순  (0) 2021.08.10
210810_배열+등수  (0) 2021.08.10