과제
2022.06.28 / Hw1

  1~45사이의 숫자를 6개 추출 하는 프로그램을 작성 하세요? 
 (단, 중복된 숫자는 1번만 출력 되도록 한다.) 
 Math.random() 이용해서 프로그램을 작성 하세요.

 

 

의도

Math.random() 메소드와 배열의 활용

 

 

깃허브

https://github.com/kindacool/Hw/blob/main/HW20220628/Hw1.java

 

GitHub - kindacool/Hw

Contribute to kindacool/Hw development by creating an account on GitHub.

github.com

 

 

코드

package p2022_06_28;

public class Hw1 {

	public static void main(String[] args) {
		/*
		 * 1~45사이의 숫자를 6개 추출 하는 프로그램을 작성 하세요? 
		 * (단, 중복된 숫자는 1번만 출력 되도록 한다.) 
		 * Math.random() 이용해서 프로그램을 작성 하세요.
		 */

		int[] random = new int[6];

		for (int i = 0; i < random.length; i++) {
			random[i] = (int) (Math.random() * 45 + 1);
			for (int j = 0; j < i; j++) { // 이전에 들어간 값과 같은 값이 있는지 검사
				if (random[i] == random[j]) { // 같은 값이 있다면
					i--; // 다시 할당하기 위해서 i--;
				}
			}
		}

		// 출력하기
		for (int i : random) {
			System.out.print(i + " ");
		}

	}

}

 

 

출력

 

 

강사님 코드

package p2022_06_29;

import java.util.Arrays;

class Lotto1 {

	public static void main(String[] args) {

		int num[] = new int[6];

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

			num[i] = (int) (Math.random() * 45) + 1;	// 1 ~ 45
//			num[0]=5, num[1]=5,
			for (int j = 0; j < i; j++) {
				if (num[i] == num[j]) {		// 중복
					i--;
					break;
				} // if end

			} // for end
		} // for end

		
		// 오름차순 정렬 : 버블정렬(자신의 옆자리에 있는 것과 비교)
		int temp = 0;
		for (int i = 0; i < num.length; i++){
			for (int j = i+1; j < num.length; j++) {
				if(num[i] > num[j]){
					temp = num[i];
					num[i] = num[j];
					num[j] = temp;
				}
			}
		}

//		Arrays.sort(num); // 오름차순 정렬

		for (int k : num) {
			System.out.print(k + "\t");
		}
	}
}

/*
 * 난수 발생 공식 난수 =(정수화) ((상한값-하한값+1)* Math.random()) + 하한값
 * 
 */

+ Recent posts