본문 바로가기
Frontend/JavaScript

11. JavaScript 연습문제 모음 (이중 반복문, 조건문)

by 개발개발빈이 2022. 4. 29.

● PRACTICE 연습문제

    - 수업시간에 푼 연습문제 모음

      위쪽은 내가 해본 코드 아래쪽은 강사님 코드 (비슷한 경우에는 한 가지만 적어둠)

 

    Q1) 아래 그림과 같이 출력하시오 

            ☆★★★
            ★☆★★
            ★★☆★
            ★★★☆

//Q1
var a=0, b=3;
for(a; a<=3; a++){
    for(front=a; front>0; front--){
    	document.write("★");
    }//for end
    document.write("☆");
    for(back=b; back>0; back--){
    	document.write("★");
    }//for end
    b--;
	document.write("<br>")
}//for end

//강사님 코드
for(a=1; a<=4; a=a+1){
    for(b=1; b<=4; b=b+1){
        if(a==b){
            document.write("★")
        }else{
            document.write("☆")
        } //if end
    } // for end
    document.write("<br>")
} //for end
document.write("<hr>");

 

    Q2) 아래 그림과 같이 출력하시오 (회전수 증가)

            ○
            ○○
            ○○○
            ○○○○

   

    Q3) 아래 그림과 같이 출력하시오 (회전수 감소)

            ●●●●
            ●●●
            ●●
            

//Q2
for(a=1; a<=4; a=a+1){
	for(b=1; b<=a; b=b+1){ document.write("○"); }
    document.write("<br>");
}//for end

//Q3
for(a=4; a>=1; a=a-1){
    for(b=1; b<=a; b=b+1){ document.write("●"); }
    document.write("<br>");
}//for end

 

    Q4) 1~100사이 숫자 중에서 짝수의 합, 홀수의 합을 각각 구하시오

//Q4
var even=0, odd=0;

for(a=1; a<=100; a++){
    if(a%2==0){
        even=even+a;
    }else{
        odd=odd+a;
    }//if end
}//for end
document.write("짝수의 합: " + even + "<br>");
document.write("홀수의 합: " + odd + "<br>");

 

    Q5) 3의 배수의 누적의 합이 100이상이 되려면 3부터 어디까지 더해야 하는지 구하시오

          - 3+6+9+12+...+n >= 100 이 되도록 하는 n의 값

//Q5
var sum=0, answer=1;

while(true){//무한루프
    if(answer%3==0){
        sum=sum+answer;
    }//if end
    if(sum>=100){ break; }
	answer++;
}//while end
document.write(answer);


//강사님 코드
var hap=0;    //누적의 합
var num=0;
var str=""    //출력결과

while(true){
    num=num+3;
    hap=hap+num;
    str=str+num+"+";        //3+6+9+12+15+18+21+24+
    if(hap>=100){
        break;
    }//if end
}//while end
document.write(str);                    
document.write(num);

 

    Q6) 아래와 같이 출력하시오

           12345
           23456
           34567
           45678
           56789

//Q6
for (a=1; a<=5; a++){
    for(b=a; b<a+5; b++){
        document.write(b);
    }//for end
	document.write("<br>");
}//for end

//강사님 코드
for(a=0; a<5; a=a+1){
    for(b=a+1; b<=a+5; b=b+1){
        document.write(b);
    }//for end
    document.write("<br>");
} //for end

 

    Q7) 아래와 같이 누적의 합을 출력하시오 (회전수 증가)

           1+2+3+...+10 = 55
           1+2+3+...+20 = 210
           1+2+3+...+30 = 465
           ...
           1+2+3+...+100 = 5050
           (55,210,465,...5050만 출력)

//Q7
var sum=0;

for(a=1; a<=10; a++){
    for(b=1; b<=10*a; b++){
        sum=sum+b;
    }//for end
    document.write(sum);
    document.write("<br>");
    sum=0;
}//for end


//강사님 코드
var sum=0; //누적의 합

for(a=10; a<=100; a=a+10){ //회전수 증가 문제
    for (b=1; b<=a; b=b+1){
        sum=sum+b;
    }//for end
    document.write("1+...+" + a + "=" + sum);
    document.write("<br>");
	sum = 0;
} //for end

 

    Q8) 운행 거리에 따라 택시요금을 계산하는 프로그램 (if문 연습)

          - 2000m까지는 기본요금 900원이고
            2000m초과 운행시 200m단위마다 기본요금에 100원씩 가산하여 요금을 계산한다
            예1) 운행거리 1600m >> 기본요금 900원
            예2) 운행거리 3000m >> 기본요금 900원 + 추가요금 500원 = 1400원
            예3) 운행거리 2900m >> 기본요금 900원 + 추가요금 500원 = 1400원 (200m가 시작할 때 돈 추가) 

//Q8
var meter = 3000;
var basic = 900, surcharge = 100;
var taxifare = 0;

if(meter<2000){
	taxifare = basic;
}else{
    var add = Math.ceil((meter - 2000) / 200);
    taxifare = basic + add * surcharge;
}//if end
document.write("요금은 " + taxifare + "원 입니다");


//강사님 코드
var distance=2900;
var total=0;
var overfee=0;

if(distance<=2000){
    total=900;
}else{
    var exceed=distance-2000;   //초과거리
                                //900=2900-2000
                                //초과요금 900/200 = 4.5 >> 소수점값 올림함수 Math.ceil(4.5)=5
    overfee=Math.ceil(exceed/200)*100;
    total=900+overfee;
}//if end

document.write("총운행거리 : " + distance + "m<br>");
document.write("기본요금 : 900원<br>");
document.write("추가요금 : " + overfee + "원<br>");
document.write("전체요금 : " + total + "원<br>");

댓글