비욘드 형님이 새벽까지 알려주셨었는데 제가 하도멍청한지라 또 이상하게 짜놔서요 그
import java.util.HashSet;
public class Lotto {
public static void main(String[] ar){
int count = 0;
int r1,r2,r3,r4,r5;
r1=r2=r3=r4=r5=0;
long rsum=0;
int price = 0;
System.out.println("=========로또 시뮬레이션=======");
//로또번호 생성
HashSet<Integer> hs = new HashSet<Integer>();
while(hs.size() <6){
hs.add((int)(Math.random()*(45-1+1)+1));
}
int bon = ((int)(Math.random()*(45-1+1)+1));
for(int i : hs){
if(i==bon){ //보너스 번호는 당첨번호랑 중복되면 안되니깐
int bon2 = ((int)(Math.random()*(45-1+1)+1)); //중복이 있으면 bon2변수에 랜덤으로 다시 생성하고
bon=bon2; //그걸 다시 bon으로 넘겨서 다시 비교 없으면, 진행계속
}
} //여기서 bon2를 다시 bon에 넣어서 중복여부 다시 체크하고 싶은데 그걸 모르겠어요 for문이나 무한루프로 돌리니깐 아래가 오류나서 ㅠㅠ
//시도번호
while(true){
HashSet<Integer> hs2 = new HashSet<Integer>();
while(hs2.size() < 6){
hs2.add((int)(Math.random()*(45-1+1)+1));
}
rsum++; //시도할떄마다 count니깐 각 등수별로 안해도 상관없었음.
count =0; //이걸 초기화 안해버리니깐 count++이 계속 누적되서 이상한 결과값이 나왔었음.
System.out.println("추첨번호: " + hs + "보너스 번호:" + bon);
System.out.println("시도번호: " + hs2);
for(int i: hs){ //매칭시키는곳
for(int i2: hs2){
if(i==i2){
count++;
}
}
}
if(count == 3){
System.out.println(count + "개 정답! 5등입니다");
System.out.println("======================");
r5++;
price = price+1000;
}
else if(count == 4){
System.out.println(count + "개 정답! 4등입니다");
System.out.println("======================");
r4++;
price = price+1000;
}
else if(count == 5){
System.out.println(count + "개 정답! 3등입니다");
System.out.println("======================");
r3++;
price = price+1000;
}
else if(hs2.equals(bon)&&count == 5){ //hs2라는 배열이랑 변수 bon 대체 어떻게 비교하는지 모르겠음. 월요일날 질문
System.out.println(count + "개 및 보너스 번호까지 정답! 2등입니다");
System.out.println("======================");
r2++;
price = price+1000;
} //그리고 이부분은 5개 다맞는 상황이랑 보너스번호 추가로 1개 맞으면 2등이다 하려하는데 비욘드 형님꼐서 말씀하시길 이미 위에서 5개 다 맞아버리는게 있어서 여기는 코드가 인식도 안한다 하셨는데 그럼 어떻게 처리해야 하는지 모르겠어요 제가 초보라서 이렇게 밖에 코드는 아직 못짜서 추가적으로 새로운걸로는 못해요 ㅠㅜㅜㅠㅠㅠㅠㅠㅠ
else if(count == 6){
System.out.println(count + "개 정답! 1등입니다");
System.out.println("======================");
r1++;
price = price+1000;
System.out.println("5등 당첨횟수: " + r5 + "회");
System.out.println("4등 당첨횟수: " + r4 + "회");
System.out.println("3등 당첨횟수: " + r3 + "회");
System.out.println("2등 당첨횟수: " + r2 + "회");
System.out.println("1등 당첨횟수: " + r1 + "회");
System.out.println("1등 당첨까지 시도한 총 횟수: " + rsum + "회");
System.out.println("1등 당첨까지 꼬라박은 돈: " + price + "원");
System.out.println("1등 당첨확률: " + (((r1/(float)rsum)*100)) + "%입니다." );
break;
}
}
}
}
아 참고로 제가 하려는건요 임의의 난수생성6개(이게 로또번호 생성) / 보너스번호 생성(이것도 로또번호랑 겹치지 않게 하려하는데 모르겠는부분) / 임의의 난수6개 추가생성(이게 시도번호) 해서 3개면 5등 4개면 4등 5개면 3등 5개+보너스1개면 2등(여기도 모르겠어요 ) 6개면 1등 하려 하고있습니다.
java 모름 c로 짜라..
난수를 7개 생성 해서 그중 한개를 보너스로 넣으면되잔어
글고나머지 6개를 배열에 담고
배열메모리비교 하면 c로는 존나쉬운데 java는모름
memcmp 쓰면 끝인데 역시 명불허전 java개쓰레기언어
//irene ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ아 뭐에욬ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ