2017-11-02 4 views
1

를 형성하는 프로그램 작성 : 나는 다른 중첩 루프하지만 성공 for loop을 사용하고그것은 다음과 같아야합니다 매트릭스

0 1 2 3 4 
1 0 1 2 3 
2 1 0 1 2 
3 2 1 0 1 
4 3 2 1 0 

합니다. 여기 그것을 이해하려는 나의 절름발이 시도가 있습니다.

for (var i = 0; i < 5; i++) { 
     for (var j = 0; j < 5; j++) { 
       document.write(j); 
     } 
document.write(“<br>” + (i + 1)); 
} 

+0

'document.write' 다른 쓰기 방법에 찬성 포기해야한다. 또한 빈 상태로 요소의 내용을 덮어 쓰지 않도록하십시오. 대신 문자열을 연결하십시오. 문자열이 생성 된 후에 만 ​​- 원하는 대상 요소에 한 번 배치하십시오. –

+0

i와 j의 값을 기록하기 위해 테이블을 사용하여 코드를 단계별로 실행하십시오. 무슨 일이 일어나는지보고 원하는 패턴에 맞게 어떻게 바꿀 수 있는지 생각해보십시오. –

답변

1

시도 행렬의 각 값이 ij의 차이의 absolute value을하기 때문에 당신은 Math.abs()를 사용할 수 있습니다

function paintMatrix(n) { 
 
    var result = ""; 
 
    for (var i = 0; i < n; i++) { 
 
    for (var j = 0; j < n; j++) { 
 
     result += " " + Math.abs(i - j); 
 
    } 
 
    result += "\n" 
 
    } 
 
    console.log(result); 
 
} 
 

 
paintMatrix(5);

0

이 알고리즘

for (var i = 0; i < 5; i++) { 
 
    for (var j = 0; j < 5; j++) { 
 
    document.write(Math.abs(j-i)); 
 
    } 
 
    document.write('<br>') 
 
}

+0

'str + = Math.abs (ji)'등을 시도해 보시고, 한 번만 (모든 루프가 끝난 후) document.someElement'innerHTML' 또는'insertAdjacentHTML' 또는 다른 형태의 문자열 포함을 사용하십시오 –

+0

질문은 알고리즘에 관한 것입니다 행렬을 형성한다. 나는 문제점에 따라 샘플을 표본으로 바꾼다. – Sabik

관련 문제