과제
2022.08.12/ Hw1

Math.random() 을 이용해서 1~45 사이의 난수를 6개 추출 하는 프로그램을 작성
조건 1.중복 되지 않는 값을 구해야함.

조건 2.구해진 값을 오름차순으로 정렬해서 출력

 

 

의도

Math 객체 함수 사용

난수발생 함수 사용

 

 

깃허브

https://github.com/kindacool/Hw/blob/main/HW20220812/20220812_hw1.html

 

GitHub - kindacool/Hw

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

github.com

 

 

코드

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script>

/* 과제. Math.random()을 이용해서 1~45 사이의 난수를 6개 추출 하는 프로그램을 작성
(조건 1.중복 되지 않는 값을 구해야함, 2.구해진 값을 오름차순으로 정렬해서 출력) */

	// 배열 선언
	var random = Array();
	
	// 난수 발생, 중복검사, 정렬
	for(var i = 0; i < 6; i++) {
		random[i] = Math.ceil(Math.random() * 45);	// 1 ~ 45 난수 발생
		for(var j = 0; j < i; j++) {
			// 중복검사
			if(random[i] == random[j]){
				i--;
				break;
			}
			// 정렬
			if(random[i] < random[j]) {
				random.splice(j, 0, random[i])// 그 j의 자리에 넣어야함
				random.pop(); // 그리고 맨 마지막의 random[i] 삭제
			}
		}
	}
	
	//출력
	document.write("번호 : " + random + "<br>");
//	document.write(random.sort() + "<br>"); 는 안된다.
	
	

	
</script>
</body>
</html>

 

 

출력

 

 

강사님 코드

<html>
 <head>
  <meta charset="UTF-8">
  <title> lotto </title>
  <script>

function find(){
	var lotto = new Array();

	for(var i=0; i<6; i++){
		// 1~45 난수 발생 부분 
//		lotto[0]=10; lotto[1]=10; 
		lotto[i] = Math.floor(Math.random()*45)+1;

		//중복 검사 부분
		for(var j=0; j<i; j++){
			if(lotto[i] == lotto[j]){
				i--;
				break;
			}
		}
	}
//	lotto.sort();

// 정렬방식 : 오름차순 (1,2,3....)
  lotto.sort(function(a,b){
   return a-b;
  });

// 정렬방식 : 내림차순 (10,9,8...)
//  lotto.sort(function(a,b){
//   return b-a;
//  });

    document.write(lotto);

//	for(var k=0; k<6; k++){
//		document.write(lotto[k]+"  ");
//	}

}
  </script>
 </head>

 <body>
 <form>
	<input type=button value="추첨하기" onClick="find()">
 </form> 
 </body>
</html>

+ Recent posts