728x90
반응형
문제
로또 번호를 입력 받아 로또 당첨 여부를 확인하시오.
6개를 다 맞추면 1등, 5개를 맞추고 보너스 번호까지 맞추면 2등, 5개만 맞추면 3등, 4개를 맞추면 4등, 3개를 맞추면 5등이다.
▶ 제한사항
- 로또 번호는 1부터 45까지의 값에서만 나온다.
- 로또는 직접 입력하거나, 랜덤으로 입력받을 수 있다.
- 로또 번호는 중복된 번호가 나올 수 없다.
- random() 함수를 이용한다.
코드
1. 로또 번호를 수동으로 선택할지, 자동으로 선택할지 선택
int num[]=new int[6]; //로또 번호 6개 선택
Scanner scan=new Scanner(System.in);
System.out.println("★★★★★★★★★★★로또 당첨을 기원합니다★★★★★★★★★★★");
System.out.println("----------------------------------------");
int automatic=2;
//로또 번호 수동/자동 출력 선택
while(true){
System.out.print("수동을 원하시면 0, 자동을 원하시면 1을 입력하세요 >> ");
automatic=scan.nextInt();
if(automatic==0 || automatic==1)
break; //무한 루프 종료
else
System.out.println("잘못 입력하셨습니다.다시 입력해주세요.");
}
2-1. 수동으로 로또 번호 입력
if(automatic==0){
System.out.println("----------------------------------------");
for(int i=0;i<num.length;i++){
System.out.printf("%d번 로또 번호를 입력하세요:",i+1);
num[i]=scan.nextInt();
if(num[i]<=0 || num[i]>45){ //잘못 입력했을 때
System.out.println("\n1부터 45까지의 숫자를 입력해주세요.");
i--;
}
else{
for(int j=0;j<i;j++){
if(num[i]==num[j]){ //같은 값이 들어가면 무효화
System.out.printf("\n%d는 이미 입력하셨습니다.다시 입력해주세요.\n",num[j]);
i--;
break;//inner_for_out
}
}//inner_for_end
}
}//out_for_end
}
2-2. 자동으로 로또 번호 입력
else{
for(int i=0;i<num.length;i++){
num[i]=(int)(Math.random()*45+1);
for(int j=0;j<i;j++){
if(num[i]==num[j]){ //같은 값이 들어가면 무효화
i--;
break;//inner_for_out
}
}//inner_for_end
}//out_for_end
}
3. 로또 번호와 보너스 번호를 랜덤으로 저장
//랜덤 로또 번호
int lotto[]=new int[7]; //마지막은 보너스 번호
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;//inner_for_out
}
}//inner_for_end
}//out_for_end
4. 로또 번호 출력
//출력
System.out.println("----------------------------------------");
System.out.print("당신의 로또 번호:");
for(int i=0;i<num.length;i++){
System.out.print(num[i]+" ");
}
System.out.println(); //줄바꿈
System.out.print("로또번호:");
for(int i=0;i<lotto.length-1;i++)
System.out.print(lotto[i]+" ");
System.out.println("\n보너스번호:"+lotto[lotto.length-1]);
System.out.println("----------------------------------------");
5. 로또 당첨 여부 확인
int count=0; //맞춘 번호 숫자 카운트
int bonus=0; //보너스 번호를 맞추지 못하면 0. 보너스 번호를 맞추면 1
System.out.print("맞추신 번호:");
for(int i=0;i<num.length;i++){
//보너스 번호 빼고 6개의 번호 확인
for(int j=0;j<lotto.length-1;j++){
if(num[i]==lotto[j]){
System.out.print(num[i]+" ");//맞춘 번호 출력
count++;
}
}//inner_for_end
//보너스 번호 일치 여부 확인
if(num[i]==lotto[lotto.length-1])
bonus=1;
}//out_for_end
if(count==0) //당첨된 번호가 하나도 없으면 "없음" 출력
System.out.print("없음");
System.out.println(); //줄바꿈
6. 로또 등수 출력
//당첨 여부 출력
switch(count){
case 6:
System.out.printf("%d개를 맞추셨습니다.1등입니다!!!\n", count);
break;
case 5:
if(bonus==1)
System.out.printf("%d개와 보너스 번호를 맞추셨습니다.2등입니다!!\n", count);
else
System.out.printf("%d개를 맞추셨습니다.3등입니다!!\n", count);
break;
case 4:
System.out.printf("%d개를 맞추셨습니다.4등입니다!!\n", count);
break;
case 3:
System.out.printf("%d개를 맞추셨습니다.5등입니다!!\n", count);
break;
default:
System.out.printf("%d개를 맞추셨습니다.다음에 다시 도전해보세요^^",count);
}
출력 결과
1. 수동 입력
★★★★★★★★★★★로또 당첨을 기원합니다★★★★★★★★★★★
------------------------------------------------------------
수동을 원하시면 0, 자동을 원하시면 1을 입력하세요 >> 0
------------------------------------------------------------
1번 로또 번호를 입력하세요:5
2번 로또 번호를 입력하세요:5
5는 이미 입력하셨습니다.다시 입력해주세요.
2번 로또 번호를 입력하세요:46
1부터 45까지의 숫자를 입력해주세요.
2번 로또 번호를 입력하세요:43
3번 로또 번호를 입력하세요:22
4번 로또 번호를 입력하세요:13
5번 로또 번호를 입력하세요:39
6번 로또 번호를 입력하세요:7
------------------------------------------------------------
당신의 로또 번호:5 43 22 13 39 7
로또번호:14 16 15 27 28 21
보너스번호:19
------------------------------------------------------------
맞추신 번호:없음
0개를 맞추셨습니다.다음에 다시 도전해보세요^^
2. 자동 입력
★★★★★★★★★★★로또 당첨을 기원합니다★★★★★★★★★★★
------------------------------------------------------------
수동을 원하시면 0, 자동을 원하시면 1을 입력하세요 >> 1
------------------------------------------------------------
당신의 로또 번호:14 10 19 35 43 9
로또번호:30 14 10 45 12 21
보너스번호:44
------------------------------------------------------------
맞추신 번호:14 10
2개를 맞추셨습니다.다음에 다시 도전해보세요^^
728x90
반응형
'HRD_훈련 > 실습' 카테고리의 다른 글
[JAVA] UP&DOWN 답 맞추기 (0) | 2023.05.25 |
---|---|
[JAVA] Random 함수를 이용한 구구단 답 맞추기 (0) | 2023.05.25 |
[JAVA] 주민등록번호를 입력 받아 남자인지 여자인지 판별 (0) | 2023.05.22 |
[JAVA] 반복문을 이용한 별 출력 (0) | 2023.05.21 |
[JAVA] 조건문을 이용해 학점 구하기 (0) | 2023.05.21 |