본문 바로가기

1.웹개발/JS

[JS] 별찍기

// 1. 변수 x가 10보다 크고 20보다 작을 때 변수 x를 출력하는 조건식을 완성하라
var x = 15;
if (10 < x && x < 20) {
  console.log(x);
}

// 2. for문을 사용하여 0부터 10미만의 정수 중에서 짝수만을 작은 수부터 출력하시오.
for(i=0;i<10;i++){
  if(i%2==0){
      console.log(i);
  }
}

// 3. for문을 사용하여 0부터 10미만의 정수 중에서 짝수만을 작은 수부터 문자열로 출력하시오.
var Even = "";
for(i=0;i<10;i++){
  if(i%2==0){
    Even = Even + i;
}
}
console.log(Even);

// 4. for문을 사용하여 0부터 10미만의 정수 중에서 홀수만을 큰수부터 출력하시오.
for(i=10;i>0;i--){
  if(i%2==1){
      console.log(i);
  }
}
// 5. while문을 사용하여 0 부터 10 미만의 정수 중에서 짝수만을 작은 수부터 출력하시오.
i=0;
while(i<10){
  if(i%2==0){
    console.log(i);
    i++;
  }
  i++;
}
// 6. while문을 사용하여 0 부터 10 미만의 정수 중에서 홀수만을 큰수부터 출력하시오.
i=10;
while(1<=i){
  if(i%2==1){
    console.log(i);
    i--;
  }
  i--;
}
// 7. for 문을 사용하여 0부터 10미만의 정수의 합을 출력하시오.
var sum = 0;
for(i=0;i<10;i++){
    sum = sum +i;
}
console.log(sum);
// 8. 1부터 20 미만의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합을 구하시오.
var sum = 0;
for (i=1;i<20;i++){
    if(i%2!==0 && i%3!==0){
        sum = sum +i;
    }
}
console.log(sum);

// 9. 1부터 20 미만의 정수 중에서 2 또는 3의 배수인 수의 총합을 구하시오.
var sum = 0;
for (i=1;i<20;i++){
    if(i%2==0 || i%3==0){
        sum = sum +i;
    }
}
console.log(sum);
// 10. 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하시오.

for(i=1;i<=6;i++){
  for(j=1;j<=6;j++){
      if(i+j==6){
          console.log(i,j)
      }
  }
}
// 11. 삼각형 출력하기 - pattern 1 *12345
var star = '';
for ( var i = 0 ; i <= 5 ; i ++){
	for (var j = 0 ; j < i ; j++){
		star = star +'*';
	}	
	star = star +'\n';
}
console.log('방법1');
console.log(star);


console.log('방법2');
for(var star= 1; star <=5; star +=1){
  console.log('*'.repeat(star));
}


// 12. 삼각형 출력하기 - pattern 2 *은 54321, 공백은 01234
console.log('방법1');
for(var i=0; i<5; i++){
  var star ="";
  for(var j=0; j<i; j++){
    star = star+" ";
  }

  for(var j=0; j<5-i; j++){
    star = star+"*";
  }
  console.log(star);
}



console.log('방법2');
for(var star =5; star >=1;star -=1){
  console.log(' '.repeat(5-star)+'*'.repeat(star));
}

for(var i=0; i<5; i++){
  var star = "";
  for(var j=0; j<5; j++){
    if(j<i){
      star = star+" ";
    }
    else {
      star = star+"*";
    }
  }
  console.log('방법3');
  console.log(star);
}



// 13. 삼각형 출력하기 - pattern 3 *54321
var star = '';
for(var i = 0 ; i <= 5; i++){
            star = star +'\n';
            for(var j = i ; j < 5 ; j++){
                star = star +'*';
            }
        }
console.log('방법1');
console.log(star);


console.log('방법2');
for (var star =5; star >=1; star -=1){
  console.log('*'.repeat(star))
}
//14. 삼각형 출력하기 - pattern 4 *12345 공백01234
console.log('방법1');
for(var i=1; i<6; i++){
  var star ="";
	  for(var j=0; j<5-i; j++){
    star = star+" ";
  }	
  for(var j=0; j<i; j++){
    star = star+"*";
  }

  console.log(star);
}


// 15. 정삼각형 출력하기 *13579 공백43210
var layer=5;
var star = '';
for (var i=0; i<layer; i++) {
            for (var j=i; j<layer-1; j++)
				star = star + ' ';
            for (var k=0; k<=(i*2); k++)
				star = star + '*';
  		star= star+'\n'
}
console.log('방법1');
console.log(star);


console.log('방법2')
for (var star = 1; star <=9; star +=2){
  console.log(' '.repeat((9-star)/2) + '*'.repeat(star))
}

// 16. 역정삼각형 출력하기 *97531 공백01234
var layer= 5;
var star = '';
        for (var i=0; i<layer; i++) {
            for (var j=0; j<i; j++)
                star = star + ' ';
            for (var k=0; k<=((layer-i-1)*2); k++)
                star = star + '*';
            star= star+'\n';
        }
console.log('방법1');
console.log(star);




console.log('방법2');
for (var star = 9; star >=1; star -=2){
  console.log(' '.repeat((9-star)/2) + '*'.repeat(star))
}

별찍기 정삼각형의 핵심

1.공백을 먼저 찍는다고 생각하기 (단 좌측공백만 생각)

2. 반복문안에 반복문 2개

3. j는 최상층 이기때문에 1번만 찍힐거고 j=i, 찍힐 개수는 층수-1 만큼

4. k는 별이 2개씩(양옆으로 늘어나기 때문에) i*2까지 찍는다 (기본1개에)

 

역정삼각형의 핵심

1.공백을 먼저 찍는다고 생각하기 (공백개수 0,2,4 짝수증가) 단 여기서도 좌측공백만 찍어주면됨

2.반복문안에 반복문2개

3j는 0부터, j<i i가 큰만큼( 시작은 0, 1이면 2개 2면 3개)

4.k도0부터 k<=(층수-i-1)*2 까지, 5층이면 8까지, 0부터니까 9개

공통)

윗코드는 5층이라고 고정되어있는데, layer값을 변경시키면 층수를 늘릴 수 있음 

반응형

'1.웹개발 > JS' 카테고리의 다른 글

for문의 동작순서  (0) 2020.10.13
var와 let/const의 차이  (0) 2019.08.14
[JS] 자바스크립트 ES5 ES6 차이  (2) 2019.08.12
[JS] 019-017이 4인 이유  (0) 2019.06.02
[JS]this,바인딩,this결정조건  (0) 2019.05.14