● 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>");
'Frontend > JavaScript' 카테고리의 다른 글
13. JavaScript 연습문제 모음 (Array) (0) | 2022.05.02 |
---|---|
12. JavaScript 배열(Array) (0) | 2022.05.02 |
10. JavaScript 연습문제 모음 (조건문, 반복문) (0) | 2022.04.29 |
09. JavaScript 반복문(for, while, do~while, break, continue) (0) | 2022.04.28 |
08.JavaScript 조건문(if, switch~case) (0) | 2022.04.28 |
댓글