Напишите программу, которая сформирует матрицу

1

Он должен выглядеть так:

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 loop с другим вложенным циклом, но без успеха. Вот мои хромые попытки понять это.

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. Посмотрите, что происходит, и подумайте, как вы можете изменить его, чтобы он соответствовал желаемому шаблону.
Теги:

2 ответа

1
Лучший ответ

Поскольку каждое значение матрицы является абсолютным значением разности между i и j вы можете использовать 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
    Вопрос был об алгоритме формирования матрицы. Я просто меняю образец из вопроса в соответствии с проблемой

Ещё вопросы

Сообщество Overcoder
Наверх
Меню