라라리라

2023.07.28 / Step 4 [반복문] - 코딩 9 일차 본문

코딩/2023 JavaScript Console

2023.07.28 / Step 4 [반복문] - 코딩 9 일차

헤실 2023. 7. 28. 19:21

반복문4_개념01_배수_순서.html

 

<script>

  /*
        [문제]
            100 이상인 9의 배수 중에서 3번째 배수를 출력하시오.
        [정답]  
            126    
    */
   /*
        [설명]
            배수는 범위를 특별히 제한하지 않으면 계속해서 커지기 때문에,
            위 문제를 풀기 위해선 무한 반복문을 사용해야 한다.  
   */
   let run = true;
   let a = 1;
   let count = 0;
   let rs = 0;

   while(run){
    if(a % 9 == 0 && a >= 100){
        console.log(a);
        count += 1;
        rs = a;
    }
    if(count == 3){
        run = false;
        console.log(rs);
        document.write(rs);
    }
    a += 1;
   }




</script>

 


반복문4_개념02_배수_십의자리_순서.html

 

<script>

/*
        [문제]
            100 이상인 9의 배수 중에서
            10의 자리가 6인 두 번째 배수를 출력하시오.
        [정답]
            261  
    */
    /*
        [설명]
            배수는 범위를 특별히 제한하지 않으면 계속해서 커지기 때문에,
            위 문제를 풀기 위해선 무한 반복문을 사용해야 한다.  
    */


    ////////////////////
   
   
//==============================================================

let a = 1;
    let run = true;
    let count = 0;

    let rs = 0;

    while(run == true){
        let 십의자리 = parseInt(a % 100 / 10);
        if(a % 9 == 0 && a >= 100 && 십의자리 == 6){
            count += 1;
        }
            if(count == 2){
                run = false;
                rs = a;
                console.log(rs);
                document.write(rs +"<br>");
               
            }
       
          a += 1;
           
    }
   


</script>

 


반복문4_개념03_배수_개수.html

 

<script>


 /*
        [문제]
            100 이상인 7의 배수 중
            3개만 차례대로 출력하시오.
        [정답]
            105
            112
            119    
    */

    let a = 100;

    let count = 0 ;
    let run = 1;

    while(run){
        if(a % 7 == 0){
            count += 1;
                console.log(a);
                document.write(a +"<br>");
        }
            if(count == 3){
                run = 0;
               
           
        }
        a += 1;
    }


</script>

 


반복문4_개념04_배수_백의자리_개수.html

 

<script>


/*
        [문제]
            100 이상인 15의 배수 중
            백의 자리가 7인
            배수 3개만 차례대로 출력하시오.
        [정답]
            705
            720
            735    
    */

    let a = 100 ;
    let count = 0;
    let run = 1;

    while(run){
        let 백의자리 = parseInt(a % 1000 / 100);
        if(a % 15 == 0 && 백의자리 == 7){
            count += 1;
            console.log(a);
            document.write(a + "<br>");
        }
            if(count == 3){
                run = 0
            }
     
        a += 1;
    }


</script>

 


반복문4_개념05_배수_직전.html

 

<script>


/*
        [문제]
            세 자릿수의 28의 배수 중에서 가장 큰 수를 출력하시오.
        [정답]
            980    
    */

    let a = 1;
    let count = 0;
    let rs = 0;
    let run = 1 ;

    while(run){
        if(a >= 100 && a < 1000 && a % 28 == 0){
            rs = a;
           
         
        }
        if( a > 1000){
            run = 0;
        }
       
        a += 1;
    }
    console.log(rs);
            document.write(rs+"<br>");


</script>

 


반복문4_개념06_약수_직전직후.html

 

<script>
/*
        [문제]
            280의 약수 중에
            50바로 전의 값과 바로 뒤의 값을 구하시오.
        [정답]
            40
            56    
    */

    let a = 1;
    let count = 0;

    let x = 0;
    let y = 0;

    while(a <= 280){
        if(280 % a == 0){
            if(a <= 50){
                x = a;
            }
        if(a >= 50){
            count += 1;
            y = a;
   
        }
       
        }
        if(count == 1){
            a = 300
        }
       
        a += 1;
    }
    console.log(x);
    console.log(y);
    document.write("x = " + x + "<br>y = " + y)
    </script>

 


반복문4_개념07_약수_순서.html

 

<script>

/*
        [문제]
            75의 약수 중에서 작은 수부터 큰 수를 출력했을 때,
            다섯 번째 약수만 출력하시오.
        [정답]
            25    
    */

    let a = 1;
    let run = true;
    let rs = 0;
    let count = 0;

    while(run){
        if(75 % a ==0){
            count += 1;
        }        
        if(count == 5){
            run = false;
            console.log(a);
            document.write(a + "<br>");
        }
        a += 1;

    }
   


</script>

 


반복문4_개념08_약수_순서_거꾸로.html

 

<script>

/*
        [문제]
            852의 약수 중에서 큰 수부터 작은 수를 거꾸로 출력했을 때,
            다섯 번째 약수만 출력하시오.
        [정답]
            142    
    */


    let a = 852;
    let count = 0;

    while(a >= 1){
        if(852 % a == 0){
           
            count += 1;
        }
        if(count == 5){
           
            console.log(a);
            document.write(a+"<br>");
            a = -100;
        }
        a -= 1;    
    }


</script>

 


반복문4_개념09_약수_백의자리_순서.html

 

<script>

/*
        [문제]
            1980의 약수 중에서 순서대로 약수를 출력했을 때,
            십의 자리가 9인 두 번째 약수를 출력하시오.
        [정답]
            99    
    */

    let a = 1;
    let count = 0;

    while(a <= 1980){
        let 십의자리 = parseInt(a % 100 /10);
        if(1980 % a == 0 && 십의자리 == 9){
            count += 1;
        }

        if(count == 2){
           
            console.log(a);
            document.write(a+"<br>");
            a = 2000;
        }
        a += 1;
    }


</script>

 


반복문4_문제01_배수_순서.html

 

<script>

    /*
        [문제]
            [1] 100 이상의 숫자 중에서  
                7의 배수를 순차적으로 검색하고,
            [2] 그 중 3번째 7의 배수를 출력하시오.
        [정답]
            119    
    */

   let a = 100;
   let run = 1;
   let count = 0;

   while(run){
    if(a % 7 == 0){
        count += 1;
    }
    if(count == 3){
        console.log(a);
        document.write(a + "<br>")
        run = 0
    }
    a += 1;
   }

</script>

 


반복문4_문제02_배수_일의자리_순서.html

 

<script>

    /*
        [문제]
            9의 배수 중 일의 자리가 6인
            첫 번째 배수를 출력하시오.
        [정답]
            36    
    */

    let a = 1;
    let count = 0;
    let run = 1;

    while(run){
        let 일의자리 = parseInt(a % 10);
        if(a % 9 == 0 && 일의자리 == 6){
            count += 1;
        }
        if(count == 1){
            run = 0;
            console.log(a);
            document.write(a +"<br>");
        }
        a += 1;
    }
</script>

 


반복문4_문제03_배수_십의자리_순서.html

 

<script>

    /*
        [문제]
            9의 배수 중 십의 자리가 6인
            다섯 번째 배수를 출력하시오.
        [정답]
            369    
    */

    let a = 1;
    let count = 0;
    let run = 1;
   
    while(run){
        let 십의자리 = parseInt(a % 100 / 10);
        if(a % 9 == 0 && 십의자리 == 6){
            count += 1;
        }
        if(count == 5){
            run = 0;
            console.log(a);
            document.write(a+"<br>");
        }
        a += 1;
    }

</script>

 


반복문4_문제04_배수_순서_빼기.html

 

<script>

    /*
        [문제]
            다음 조건이 전부 맞는 수를 출력하시오.      
            [조건1] 13의 배수를 전부 검사한다.
            [조건2] 그 중 6번째 배수에서 4번째 배수를 뺀 수를 구한다.    
                    4번째는 배수는 52, 6번째 배수는 78이다.
        [정답]      
            26    
            */



        let a = 1;
        let count = 0;
        let 네번째 = 0;
        let 여섯 = 0;

        let run = 1;

        while(run){
            if(a % 13 == 0){
                count += 1
           
            if(count == 4){
                네번째 = a;
            }
           
           else if(count == 6){
                run = 0;
                여섯 = a;
               
            }
        }
            a += 1;
        }
        console.log(네번째);
        console.log(여섯);
        document.write("여섯번째  = " + 여섯 + " 네번째 = " + 네번째 + " 답 = " + (여섯 - 네번째));



</script>

 


반복문4_문제05_배수_개수.html

 

<script>

    /*
        [문제]
            [1] 100 이상의 숫자 중에서  
                7의 배수를 순차적으로 검색한다.
            [2] 작은 수부터 순차적으로 다섯 개를 출력하시오.
        [정답]
            105 112 119 126 133    
    */

    let a = 100;
    let count = 0;
    let run = 1;

    while(run){
        if ( a % 7 == 0){
            count += 1
            if (count <= 5){
                console.log(a);
                document.write(a + "<br>");
               
            }
            if(count == 5){
                run = 0 ;
            }

        }
        a += 1;
    }
   

</script>

 


반복문4_문제06_배수_십의자리_개수.html

 

<script>

    /*
        [문제]
            1000보다 큰 수중에서 8의 배수를 검색하고,
            십의자리가 5인 배수를
            가장 작은 수부터 차례대로 4개를 출력하시오.
        [정답]
            1056 1152 1256 1352    
    */

    let a = 1000;
    let count = 0;
    let run = 1;

    while(run){
        let 십의자리 = parseInt(a % 100 / 10);
        if(a % 8 == 0 && 십의자리 == 5 ){
            count += 1;
            if(count <= 4){
                console.log(a);
                document.write(a + " ")
            }
            if( count == 4){
                run = 0 ;
            }
        }
    a += 1;
    }

</script>

 


반복문4_문제07_배수_가까운수.html

 

<script>

    /*
        [문제]
            6의 배수를 순차적으로 검사한다.
            그 중 100에 가장 가까운 수를 출력하시오.
        [정답]
            102  
    */


    let a = 1;
    let count = 0;
    let x = 0;
    let y = 0;
    let run = 1;
    while(run){
        if(a % 6 == 0){
            if(a < 100){
                x = a;
            }
            if(a >= 100){
                y = a;
                run = 0;
            }
        }
        a += 1;
    }
    if(100 - x <= y - 100){
        console.log(x);
        document.write(x+"<br>");
    } else {
        console.log(y);
        document.write(y +"<br>");
    }
</script>

 


반복문4_문제08_약수 _순서.html

 

<script>

    /*
        [문제]
            745의 약수 중에서 작은 수부터 출력했을 때,
            세 번째 약수만 출력하시오.
        [정답]
            149  
    */

    let a = 1;
    let count = 0;
    let run = 1;

    while(run){
        if(745 % a == 0){
            count += 1;
            if(count == 3){
                console.log(a);
                document.write(a +"<br>");
                run = 0
            }
        }
        a += 1;
    }

</script>

 


반복문4_문제09_약수 _백의자리_순서.html

 

<script>

    /*
        [문제]
            1980의 약수 중에서 순서대로 약수를 출력했을 때,
            백의 자리가 3인 두 번째 약수를 출력하시오.
        [정답]
            396  
    */


    let a = 1;
    let count = 0;
    let run = 1;

    while(run){
        let 백의자리 = parseInt(a % 1000 /100);
        if(1980 % a == 0 && 백의자리 == 3){
            count += 1;
            if(count == 2){
                console.log(a);
                document.write(a+"<br>");
                run = 0;
            }
        }
        a += 1;
    }
</script>

 


반복문4_문제10_약수 _십의자리_순서.html

 

<script>

    /*
        [문제]
            1980의 약수 중에서 순서대로 약수를 출력했을 때,
            십의자리가 3인 두 번째 약수를 출력하시오.
        [정답]
            33  
    */

    let a = 1;
    let count = 0 ;
    let run = 1;

    while(run){
        let 십의자리 = parseInt(a % 100 /10);
        if(1980 % a == 0 && 십의자리 == 3){
            count += 1
            if(count == 2){
                run = 0;
                console.log(a);
                document.write(a+"<br>");
            }
        }
        a += 1;
    }

</script>

 


반복문4_문제11_약수 _일의자리_순서.html

 

<script>

    /*
        [문제]
            120의 약수 중에서 순서대로 약수를 출력했을 때,
            일의자리가 4인 두 번째 약수를 출력하시오.
        [정답]
            24  
    */
    let a = 1;
    let count = 0;
    let run = 1;

    while(run){
        let 일의자리 = parseInt(a % 10)
        if(120 % a == 0 && 일의자리 == 4){
            count += 1;
            if(count == 2){
                run = 0;
                console.log(a);
                document.write(a + "<br>");
            }
        }
        a += 1;
    }


</script>

 


반복문4_문제12_약수_순서_빼기.html

 

<script>

    /*
        [문제]
            100의 약수 중에서
            5번째 약수에서 2번째 약수를 뺀 값을 구하시오.
        [정답]
                8  
    */

    let a = 1;
    let count = 0;
    let run = 1;
    let x = 0;
    let y = 0;

    while(run){
        if(100 % a == 0){
            count += 1;
            if(count == 2){
                x = a;
            }
            if(count == 5){
                y = a;
                run = 0;
            }
        }
        a += 1;
    }
    console.log(x + " , " + y);
    document.write(x + " , " + y + "<br>");

    document.write(y - x);

</script>

 


반복문4_문제13_약수_가까운수.html

 

<script>

    /*
        [문제]
            200의 약수 중에서 짝수 중
            80에 가장 가까운 수를 구하시오.
        [정답]
            100  
    */

    let a = 1;
    let count = 0;
    let run = 1;

    let x = 0;
    let y = 0;

    while(run){
        if(200 % a == 0){
            if(a <= 80){
            x = a;
            }
            if(a > 80){
                y = a;
                run = 0;
            }
        }
        a += 1;
    }

console.log(x + " , " + y)

    if(80 - x < y - 80){
        console.log(x);
        document.write(x + "<br>");
    } else {
        console.log(y);
        document.write(y +"<br>");
    }

</script>

 


반복문5_개념01_연립방정식_칼로리.html

 

<script>
/*
        [문제]
            자전거는 1분에 4칼로리가 소모되고,
            줄넘기는 1분에 9칼로리가 소모된다.

            철수는 95분 동안 505칼로리를 소모했다.
            철수가 각 운동에 사용한 시간은 각각 얼마인지 구하시오.
        [정답]
            자전거 = 70분
            줄넘기 = 25분    
    */

    /*
    자전거분 = x
    줄넘기분 = y

    x + y = 95
    4x + 9y = 505    
    */

    let 총시간 = 95;
    let 총칼로리 = 505;
   
    let x = 총시간;
    let y = 0;

    while(true){
        if(x + y == 총시간 && 4 * x + 9 * y == 505){
            break;
        } else {
            x -= 1;
            y += 1;
        }
    }
    console.log(x + " , " + y);
    document.write(x + " , " + y);
   
   
   


</script>

 


반복문5_개념02_연립방정식_속력.html

 

<script>


/*
        [문제]
            철수네 가족은 x와 y 두 지점을 자전거를 타고 왕복하였다.
            갈 때는 시속15km, 올 때는 시속 12km로 이동하여 총 45분이 걸렸을 때,
            두 지점 x, y의 거리를 구하시오.
        [정답]
            5km    
    */

    /*
    15키로 이동시간 = x
    12키로 이동시간 = y

    x  + y = 45;
    15/60 * x = 12/60 * y
    */

    let 총시간 = 45;
    let x = 총시간;
    let y = 0;
   
    while(true){
        if(x + y == 총시간 && 15/60 * x == 12/60 * y ){
            break;
        } else {
            x -= 1;
            y += 1;
        }
    }
    console.log(x + " , " + y);
    document.write(x + " , " + y);

    console.log(15/60 * x);
    document.write("<br>"+ 15/60 * x )

</script>

 


반복문5_개념03_연립방정식_동물원요금..html

 

<script>

/*
        [문제]
            철수네 반 학생들은 소풍을 나왔다.
            학생 수는 전부 24명이고 일부는 동물원 관람, 나머지 학생은 미술관 관람하였다.
            동물원 입장료는 3000원이고, 미술관 입장료는 1000원이다.
            학생 24명의 총 입장료는 40000원이었다.
           
            동물원에 입장한 학생 수와 미술관에 입장한 학생 수를 각각 구하시오.
        [정답]
            동물원 입장한 학생 수 = 8명
            미술관 입장한 학생 수 = 16명    
    */

    /*
    동물원학생수 = x
    미술관학생수 = y

    x + y = 24
    3000x + 1000y = 40000
   
    */
   
    let 총학생수 = 24;
    let 총입장료 = 40000;

    let x = 총학생수;
    let y = 0;

    while(true){
        if(x + y == 총학생수 && 3000 * x + 1000 * y == 총입장료){
            break;
        } else {
            x -= 1;
            y += 1;
        }
    }
    console.log( x + " , " + y);
    document.write(x + " , " + y);

</script>

 


반복문5_개념04_연립방정식_미술관.html

 

<script>
/*
        [문제]
            중학생인 미연이는 부모님과 함께 미술관에 갔다.
            어른의 입장료가 청소년의 입장료보다 2000원이 더 비싸고,
            세 사람의 입장료가 13000원일때, 미연이의 입장료를 구하시오.
        [정답]
            미연이의 입장료 = 3000원  
    */

    // x =  y + 2000
    // 2x + y = 13000
   
    /*
   
    어른입장료 = x
    아이입장료 = y

    2x + y = 13000
    x = y + 2000
   
    */

    let 총입장료 = 13000;

    let x = 총입장료;
    let y  = 0;

    while(true){
        if(x / 2 - y == 2000 && x + y == 총입장료 ){
            break;
        } else {
            x -= 1;
            y += 1;
        }
    }
    console.log (x /2 + " , " + y);
    document.write(x /2 + " , " + y);


</script>

 


반복문5_개념05_연립방정식_산책로.html

 

<script>
 /*
        [문제]
            철수는 총거리가 5km인 산책로를 걷는데
            처음에는 시속 4km로 걷다가 도중에 힘이 들어
            남은 거리는 시속 2km로 걸어서
            2시간 만에 산책을 마쳤다.
            시속 4km로 걸은 거리와 시속 2km로
            걸은거리를 각각 구하시오.
        [정답]
            시속 4km로 걸은 거리 = 2km
            시속 2km로 걸은 거리 = 3km    
    */

    /*
    4키로로 걸은시간 = x
    2키로로 걸은시간 = y
   
    x + y = 2 * 60
    4/60 * x + 2/60 * y = 5
   
    */

    let 총거리 = 5
   
    let 총시간 = 2 * 60

    let x = 총시간;
    let y = 0;

    while(true){
        if (x + y == 총시간 && 4/60 * x + 2/60 * y == 5 ){
            break;
        } else {
            x -= 1;
            y += 1;
        }
    }
    console.log(x + " , " + y);
    document.write(x * 4/60 + " , " + y * 2/60);


</script>

 


반복문5_개념06_연립방정식_동물다리.html

 

<script>

 /*
        [문제]
            어느 농장에는 토끼와 오리가 모두 35마리가 있다.
            토끼와 오리의 다리의 수의 합이 96개일 때,
            토끼와 오리는 각각 몇마리 인지 구하시오.
        [정답]
            토끼 = 13마리
            오리 = 22마리    
    */

   /*
   
   토끼 = x
   오리 = y
   x + y = 35
   4x + 2y = 96
   
   
   */
  let 총마리 = 35;
  let 총다리 = 96;
 
  let x = 총마리;
  let y = 0;

  while(true){
    if(x + y == 총마리 && 4 * x + 2 * y == 총다리){
        break;
    } else {
        x -= 1;
        y += 1;
    }
  }

  console.log(x + " , " + y);
  document.write(x + " , " + y);



</script>

 

 


반복문5_문제01_연립방정식_합격.html

 

<script>

    /*
        [문제]
            철수는 두 번의 시험에서 각각 80점과 72점을 받았다.
            세 번째 시험에서 최소 몇 점 이상을 받아야
            세 번의 시험성적의 평균이 82점 이상이 될 수 있을까?
            시험점수는 1점 단위로 설정된다.
        [정답]
            94    
    */

    /*
    첫번째 = 80
    두번쨰 = 72
    세번째 = x

    (80 + 72 + x) / 3 >= 82
    */

    let x = 0

    while(true){
        if((80 + 72 + x) / 3 >= 82){
            break;
        } else {
            x += 1;
        }
    }
    console.log(x);
    document.write(x);

</script>

 


반복문5_문제02_연립방정식_시험점수.html

 

<script>

    /*
        [문제]
            철수네 학교의 수학 시험은 4점짜리 문제와 5점짜리 문제가 섞여서 출제된다.  
            철수는 20개의 문제를 맞혀서 90점을 받았다.  
            각각 몇 문제씩 맞혔는지 구하시오.
            주석으로 표현하시오.
        [정답]
            4점 문제 = 10
            5점 문제 = 10    
    */

    /*
    4점개수 = x
    5점개수 = y

    x + y = 20;
    4x + 5y = 90;
    */

    let 총맞은개수 = 20;
    let 총점수 = 90;

    let x = 총맞은개수;
    let y = 0;

    while(true){
        if(x + y == 총맞은개수 && 4 * x + 5 * y == 총점수){
            break;
        }
        else{
            x -= 1;
            y += 1;
        }
    }
    console.log(x + " , " + y);
    document.write(x + " , " + y);

</script>

 


반복문5_문제03_연립방정식_편의점.html

 

<script>

    /*
        [문제]
            철수가 편의점에서 우유를 15개 구입하려고 한다.
            한 개에 1000원인 흰 우유와
            한 개에 1200원인 초코 우유를 합쳐서 총 15개 구입했다.
            20000원을 내고 4200원을 거슬러 받았을 때
            철수가 구입한 흰 우유는 몇 개인지 구하시오.
        [정답]
            11    
    */

    /*
    흰우유개수 = x
    초코우유개수 = y
    x + y = 15
    1000x + 1200y = 20000 - 4200
    */

    let 총우유개수 = 15;
    let 총금액 = 20000 - 4200;

    let x = 총우유개수;
    let y = 0;

    while(true){
        if(x + y == 총우유개수 && 1000 * x + 1200 * y == 총금액){
            break;
        }
        else {
            x -= 1;
            y += 1;
        }
    }
    console.log( x);
    document.write(x);

</script>

 


반복문5_문제04_연립방정식_요금제.html

 

<script>

    /*
        [문제]
            아래와 같은 휴대요금제가 있다 .
            B를 선택할 경우 A보다 더 경제적으로 되려면,
            통화 시간을 얼마까지 사용해야 할지 정답을 초로 구하시오.
            A요금제 기본요금 17500원 초당 5원이고,
            B요금제 기본요금 31000원 초당 2원이다.
        [정답]
            4501    
    */

    /*
    17500 + 5x > 31000 + 2x
   
    */

    let x = 0;
   

    while(true){
        let a = 17500 + 5 * x;
        let b = 31000 + 2 * x;
        if(a > b){
            break;
        } else {
            x += 1;
        }
    }
    console.log(x);
    document.write(x);
</script>

 


반복문5_문제05_연립방정식_교통카드.html

 

<script>

    /*
        [문제]
            선호네 반 학생 25명이 체험학습을 가기 위해
            버스를 탔는데, 총 요금이 19400원이었다.

            교통카드를 사용하면 720원이고,
            현금으로 지불하면 1000원일 때,

            교통카드를 사용한 학생 수와 현금을 사용한 학생 수는
            각각 얼마인지 구하시오.
        [정답]
            카드 = 20
            현금 = 5    
    */

    /*
    교통카드수 = x
    현금수 = y

    x + y = 25
    720x + 1000y = 19400
    */


    let 총인원수 = 25;
    let 총요금 = 19400;

    let x = 총인원수;
    let y = 0;

    while(true){
        if(x + y == 총인원수 && 720 * x + 1000 * y  == 총요금){
            break;
        } else {
            x -= 1;
            y += 1;
        }
    }

    console.log(x + " , " + y);
    document.write(x + " , " + y);
</script>

 


반복문5_문제06_연립방정식_나이.html

 

<script>

    /*
        [문제]
            철수는 13살 철수의 아버지는 45살이다.
            몇 년 후 철수의 아버지는 철수 나이의 3배가 될지 구하시오.
        [정답]
            3    
    */

    /*
    철수 = 13
    아빠 = 45

    3(13+ x) = 45 + x
    39 + 3x = 45 + x
    2x = 6
    */

    let x = 0;

   

    while(true){
        let 철수 = 13 + x;
        let 아빠 = 45 + x;
        if(3 * 철수 == 아빠){
            break;
        } else {
            x += 1;
        }
    }
    console.log(x);
    document.write(x);

</script>

 


반복문5_문제07_연립방정식_자전거.html

 

<script>

    /*
        [문제]
            학교에서 집까지 갈 때 시속 15km로 자전거를 타고 가면,
            시속 6km로 걸어가는 것보다 18분 일찍 도착한다고 한다.
            학교에서 집까지의 거리를 구하시오.
        [정답]
            3    
    */

    /*
    분으로 변경

    15 /60 * (x - 18)  =  6 / 60 * x
    6 / 60 * x

     x = 도착햇을때 분
     15 /60 * x = 답
    */

    let 분15 = 15/60;
    let 분6 = 6/60;

    let x = 0;

    while(true){
        if(분15 * (x - 18) == 분6 * x){
            break;
        }
        else {
            x += 1;
        }
    }

    console.log(x);
    document.write(x + "<br>");

    console.log(x * 분6);
    document.write(x * 분6);

</script>

 


반복문6_개념01_공약수.html

 

<script>
 /*
        [문제]
            90과 45의 공약수를 출력하시오.
        [정답]
            1 3 5 9 15 45
    */
   /*
   공약수 구하기
   1. 변수 a b 지정?
   90 % a == 0 == 45 % a ==0
   
   */

   let a = 0;

   while(a <= 90){
    if(90 % a == 0){
        if(45 % a == 0){
            console.log(a);
            document.write(a + " ");
        }
    }
    a += 1;
   }



</script>

 


반복문6_개념02_최대공약수.html

 

<script>
     /*
        [문제]
            90과 45의 최대공약수를 출력하시오.
        [출력]
            45    
    */

   let a = 0;

   let x = 0;

   while(a <= 90){
    if(90 % a == 0 && 45 % a == 0){
        x = a;
    }
    a += 1;
   }
   console.log(x);
   document.write(x);
</script>
 
 

 


반복문6_개념03_팀원.html

 

<script>

/*
        [문제]
            철수네 반은 여학생 16명과 남학생 20명으로 구성되어있다.
            팀을 나눠서 조별 과제를 하려고 한다.
            각 팀당 여학생과 남학생 수를 똑같이 구성하고,
            최대한 많은 팀을 만들 때 몇 팀을 만들 수 있는지 구하시오.
        [정답]
            4    
    */

    let a = 0;
    let x = 0;

    while(a <= 20){
        if(16 % a == 0 && 20 % a == 0){
            x = a;
        }
        a += 1;
           
         
    }
    console.log(x);
    document.write(x);

</script>

 


반복문6_개념04_조별과제.html

 

<script>
 /*
        [문제]
            철수네 반은 여학생 16명과 남학생 22명으로 구성되어있다.
            팀을 나눠서 조별 과제를 하려고 한다.
            각 팀당 여학생과 남학생 수를 똑같이 구성하고,
            최대한 많은 팀을 만들 때 남학생 수가 2명이 남는다고 할 때
            몇 팀을 만들 수 있는지 구하시오.
        [정답]
            4    
    */

    // 22 - 2 = 남학생

    let a = 0;
    let x = 0;

    while(a <= 20){
        if(16 % a == 0 && 20 % a == 0){
            x = a;
        }
        a += 1;
    }

    console.log(x);
    document.write(x +"<br>")


</script>

 


반복문6_개념05_공배수.html

 

<script>

 /*
        [문제]
            12와 15의 공배수를 작은 것부터 순서대로 5개만 출력하시오.
        [정답]
            60 120 180 240 300    
    */

    let a = 1;
    let count = 0;

    while(true){
        if(a % 12 == 0 && a % 15 == 0){
            count += 1;
            console.log(a);
            document.write(a + " ");
            if(count == 5){
                break;
            }
        }
        a += 1;
    }

</script>

 


반복문6_개념06_최소공배수.html

 

<script>

 /*
        [문제]
            8과 12의 최소 공배수를 구하오.
            최소 공배수란, 각 수의 배수를 나열한 다음 처음으로 같은 숫자를 말한다.
                예) 8 16 24...
                예) 12 24....
                여기서 24가 최소공배수이다.
        [정답]
            24    
    */

    let x = 8;
    let y = 12;

    let a = 12;

    while(true){
        if(a % x == 0 && a % y == 0){
            console.log(a);
            document.write(a);
            break;
        }
        a += 1;
    }

</script>

 


반복문6_개념07_세친구.html

 

<script>

/*
        [문제]
            자전거로 운동장을 한 바퀴 도는데
            철수는 90초,
            영희는 60초,
            민수는 45초가 걸린다.
            이와 같은 속력으로 같은 곳에서 동시에 출발하여 같은 방향으로 운동장을 돌 때,
            1) 세 사람이 처음으로 출발점에서 다시 만나게 되는 것은 몇 초 후인지 구하시오.
            2) 다시 만나게 되었을 때 민수는 몇 바퀴 돌았을 때인지 구하시오.
        [정답]
            1) 180초
            2) 4바퀴    
    */

    let x = 90;
    let y = 60;
    let z = 45;

    let a = 90;

    while(true){
        if(a % x == 0 && a % y == 0 && a % z == 0){
            console.log(a);
            document.write(a + "<br>");
            console.log( a / z);
            document.write(a / z);
            break;
        }
        a += 1;    
    }


</script>

 


반복문6_개념08_줄서기.html

 

<script>

/*
        [문제]
            a중학교 1학년 입학하는 학생들은
            8줄, 12줄, 18줄로 세워도
            항상 5명이 남을 때,    1학년 전체 학생 수를 구하시오.
            (학생 수는 200명 이상 250명 미만)
        [정답]
            221    
    */

    let x = 8;
    let y = 12;
    let z = 18;

    let a = 200;

    while(a <= 250){
        if(a % x == 5 && a % y == 5 && a % z == 5){
            console.log(a);
            document.write(a);
        }
        a += 1;
    }
</script>

 


반복문6_개념09_dowhile.html

 

<script>

    /*
        [do - while문]
        1. while문의 변형된 형태이다.
        2. 구조
            1) do           : 조건식이 없기 때문에 일단 실행부터 한다.
            2) {}           : 실행할 문장
            3) while(조건)    : 위에서 실행을 먼저 하고 조건을 검사한다.
                              조건이 사실이면 다시 do로 이동한다.
            4) [주의] ; 세미콜론을 반드시 붙여야한다.      
    */

    let i = 10;
    do {
        document.write("do-while<br>");
        i += 1;
    } while ( i < 3 );

    i = 10;
    while(i < 3) {
        document.write("while<br>");
        i += 1;
    }

</script>

 

 


반복문6_문제01_최대공약수.html

 

<script>

    /*
        [문제]
            45와 60, 75의 최대공약수를 구하시오.
        [정답]
            15    
    */

    let a = 1;
    let x = 0;

    while(a <= 75){
        if(60 % a == 0 && 75 % a == 0){
            x = a;
        }
        a += 1;
    }
    console.log( x);
    document.write(x);

</script>

 


반복문6_문제02_최소공배수.html

 

<script>

    /*
        [문제]
            45와 60, 75의 최소공배수를 구하시오.
        [정답]
            900    
    */
   

   let a = 75;
   while(true){
    if(a % 60 == 0 && a % 75 == 0 && a % 45 == 0){
       
        console.log(a);
        document.write(a);
        break;
    }
    a += 1;
   }
</script>

 


반복문6_문제03_구호물품.html

 

<script>

    /*
        [문제]
            구호 물품으로 소독약 120개와 붕대 72개를
            환자 한 명당 똑같은 양의 소독약과 붕대를 나눠주려고 한다.
            최대한 많은 환자에게 나눠줄 때 몇 명인지 구하시오.
        [정답]
            24    
    */

    let x = 120
    let y = 72

    let a = 1
    let rs = 0;

    while(a <= 120){
        if(x % a == 0 && y % a == 0){
            rs = a;
        }
        a += 1;
    }
    console.log(rs);
    document.write(rs);

</script>

 


반복문6_문제04_상자.html

 

<script>

    /*
        [문제]
            자동차 모형 28개와 로봇 모형 42개를 여러 상자에 나눠 담으려 한다.
            각 상자마다 자동차 모형 개수와 로봇 모형 개수가 같아야 하며,
            최대한 많은 상자에 나눠 담을 때
            자동차 모형 몇 개와 로봇 모형 몇 개씩 넣어야 하는지 구하시오.
        [정답]
            자동차 = 2
            로봇 = 3    
    */

    let x = 28;
    let y = 42;

    let a = 1;
    let rs = 0;

    while(a <= 28){
        if(x % a == 0 && y % a == 0){
            rs = a;
        }
        a += 1;
    }
    let 자동차 = x / rs;
    let 로봇 = y / rs;

    console.log(자동차 + " , " + 로봇);
    document.write(자동차 + " , " + 로봇);

</script>

 


반복문6_문제05_사탕.html

 

<script>

    /*
        [문제]
            사탕 62개와 초콜릿 88개를 각각 남김없이 똑같이 최대한
            많은 학생에게 나눠주려고 할 때,  학생 수를 구하시오.
            단, 사탕은 2개가 남고 초콜릿은 4개가 남는다.
        [정답]
            12    
    */

    let x = 62;
    let y = 88;

    let a = 1;
    let rs = 0;

    while(a <= x){
        if(x % a == 2 && y % a == 4){
            rs = a ;
        }
        a += 1;
    }
    console.log(rs);
    document.write(rs);

</script>

 


반복문6_문제06_운동장.html

 

<script>

    /*
        [문제]
            철수는 자전거로 운동장 한 바퀴 도는데 70초,
            민수는 90초가 걸린다.
            30분 동안 운동장을 돌면 출발점에서
            다시 만나는 횟수가 몇 번인지 구하시오.
            단, 30분 동안 항상 일정한 속도를 유지한다.
        [정답]
            2    
    */

    /*
    time = 30 * 60
    철수 = 70초
    민수 = 90초

    시간 = x

    */

   let x = 70;
   let y = 90;

   let time = 30 * 60;
   let a = y;
    let count = 0;

    while(a <= time){
        if(a % x == 0 && a % y ==0){
            console.log(a);
            document.write(a + "<br>");
            count += 1;
        }
        a += 1;
    }
    console.log(count);
    document.write(count);
</script>

 


반복문6_문제07_수영장.html

 

<script>

    /*
        [문제]
            철수와 민수는 같은 수영장에 다닌다.
            철수는 4일마다 한 번씩 가고 민수는 5일마다 한 번씩 간다.
            철수와 민수가 2월 3일 처음 만났다면
            다음에 서로 만나는 날은 언제인지 구하시오.
        [정답]
            23    
    */
   let x = 4;
   let y = 5;

   let a = y;

   while(true){
    if(a % x == 0 && a % y == 0){
        console.log(a);
        document.write(a+ "<br>");
        break;
    }
    a += 1;
   }
   console.log(3 + a);
   document.write(3 + a);

</script>

 


반복문6_문제08_버스출발.html

 

<script>

    /*
        [문제]
            어느 시외버스 터미널에서 대전행버스는 10분 간격으로 출발,
            광주행버스는 15분 간격으로 출발,
            부산행버스는 18분 간격으로 출발한다고 했을 때,
            오전 8시에 처음 동시에 출발하고,
            그 이후 처음으로 동시에 출발하는 시각을 구하시오.
        [정답]
            9시 30분    
    */

    let x = 10;
    let y = 15;
    let z = 18;

    let time = 8 * 60;

    let a = z;

    while(true){
        if(a % x == 0 && a % y == 0 && a % z == 0){
            time += a;

            break;
        }
        a += 1;
    }

    let = parseInt(time / 60);
    let = parseInt(time % 60);

    console.log( + "시 " + + "분");
    document.write( + "시 " + + "분");

   



</script>