JavaScript에서 숫자 패턴 인쇄

Nov 05 2020

다음과 같이 패턴으로 숫자를 인쇄하고 싶습니다 .for 루프 내부의 if 조건이 아닌 하나의 for 루프 만 사용하여 인쇄하려면 이것이 필요합니다.

s = 7출력 패턴을 주면7, 5, 3, 1, 3, 5, 7

경우 s=6다음 출력은6, 4, 2, 4, 6

이것은 내가 시도했지만 성공하지 못한 것입니다.

const s = 7, b = 2

for (x = s, d = b; x > 0 && x <= 7; x -= 2) {
  console.log(x)
}

이를 달성하기 위해 미리 빌드 된 라이브러리를 사용하고 싶지 않습니다. Math.abs()

답변

1 maraca Nov 05 2020 at 07:32

삼항 연산자 사용 :

const s = 10, b = 2

for (x = s, step = -b; x <= s; step = x + step <= 0 ? -step : step, x += step) {
  console.log(x)
}

1 ShridharRKulkarni Nov 05 2020 at 07:12

var s = 7, b = 2, x, d;
var front = " ", back = " ";

for (x = s, d = b; x - b > 0 ; x -= b) {
    front = front + " " + x; 
    back = x + " " + back;
}
console.log(front + " " + x + " " + back);

TejaGoudKandula Nov 05 2020 at 08:18

이것은 짝수와 홀수 모두에서 작동합니다.

const s = 8, b = 2

for (x=s,step = b; x <=s ; (x===1 || x===2) ? (step = -b, x = x-step ): x= x-step) {
    console.log(x)
}

내가 한 것은 x가 홀수 일 때 1이 될 때 또는 x가 짝수 일 때 2 일 때 증감 블록에서 단계가 양수에서 음수로 변경된다는 것입니다.

번호를 오름차순으로 인쇄하려면 :

const s = 10

for ( x=0,step=1; x!== -1 ; x===s ? (step = -1, x = x+step): x= x+step) {
    console.log(x)
}