- 자바 로또 예제2024년 07월 18일
- chantleman
- 작성자
- 2024.07.18.:28
1~8까지 번호를 랜덤으로 뽑아서 로또 번호 출력
내가 갖고있는 금액은 만원이고, 만원이 다 소진될때까지 로또를 구매합니다.
import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class HomeWork13 { Scanner sc = new Scanner(System.in); public static void main(String[] args) { HomeWork13 obj = new HomeWork13(); obj.process(); } public void process() { int money=10000; while(money>0) { System.out.println("보유 금액: "+money); System.out.println("구매할 로또 금액 : "); int pay=sc.nextInt(); if(pay==0) break; if(pay>money) { System.out.println("구매하실 금액이 모자릅니다."); continue; } money-=pay; //당첨 번호 한줄 생성할 것 Lotto l = new Lotto(); int[] lotto=l.generateLotto(); System.out.println("당첨번호: "+l.array2String(lotto)); //로또 번들에서 당첨번호랑 같은 값이 있다면 상금 3만원 int[][][] bundle = l.lottoBundle(pay); l.printBundle(bundle); if(l.check(lotto, bundle)==0) System.out.println("낙첨됐습니다.");; } } } class Lotto{ public int check(int[] lotto,int[][][] bundle) { for(int[][] papers:bundle) { for(int[] lottos:papers) { if(Arrays.equals(lotto, lottos)) { System.out.println("=================="); System.out.println("당첨! 상금 3만원"); return 1; } } } return 0; } public void printBundle(int [][][] bundle) { for(int[][]paper: bundle) { System.out.println("======================"); for(int [] lotto:paper) { System.out.println(array2String(lotto)); } } } //금액에 따른 로또 장 수 public int[][][] lottoBundle(int pay){ int papers= pay/5000; if (pay%5000 !=0) papers++; int[][][] bundle = new int [papers][5][6]; for(int i=0;i<bundle.length;i++) { bundle[i] = lottoPaper(); } if(pay%5000!=0) { bundle[bundle.length-1] = lottoPaper(pay%5000/1000); } return bundle; } public int[][] lottoPaper(int num){ int[][] paper = new int[num][6]; for(int k=0;k<paper.length;k++) { paper[k]=generateLotto(); } return paper; } public int[] generateLotto() { int [] lotto = new int[6]; for(int i=0; i<lotto.length;i++) { int ran= new Random().nextInt(8)+1; lotto[i]= ran; for(int j=0;j<i;j++) { if(lotto[j]==ran) { i--; break; } } } sort(lotto); return lotto; } public void sort(int[] lotto) { for(int i=0; i<lotto.length-1;i++) { for(int j=0; j<lotto.length-1;j++) { if(lotto[j]>lotto[j+1]) { int temp=lotto[j]; lotto[j]=lotto[j+1]; lotto[j+1]=temp; } } } } public String array2String(int[] lotto) { String result = "["; for(int i=0;i<lotto.length;i++) { result+=lotto[i]; if(lotto.length-1!=i) result+=","; } result+="]"; return result; } public int[][] lottoPaper(){ return lottoPaper(5); } }
728x90'자바' 카테고리의 다른 글
eclipse에서 ojdbc, 싱글톤 이용해서 db 접속 (0) 2024.07.19 static singleton 템플릿 (0) 2024.07.19 enum (0) 2024.07.17 생산자, 오버로딩 활용하여 원기둥 부피 구하기 예제 (0) 2024.07.15 점3개로 삼각형 넓이 구하기 예제 (1) 2024.07.15 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)