Доброго времени суток участникам сообщества Toster. Это мой первый вопрос на проекте, так что не судите строго за формулировку.
Задача:
Сформировать строку, содержащую матрицу с нулями и единицами по схеме:
0 0 0 1 0 0 0
0 0 1 1 1 0 0
0 1 1 1 1 1 0
1 1 1 1 1 1 1
0 1 1 1 1 1 0
0 0 1 1 1 0 0
0 0 0 1 0 0 0
И вывести ее на дисплей.
Написал решение на JavaScript для вывода результата в консоль браузера.
(function matrixZeroOwe (line){
//Определяем середину матрицы, в случае если её размерность будет отличной от 7
var count = parseInt(line/2);
// Переменная, в которой будет храниться конечный результат
var strLine = '';
// Формируем первую половину матрицы, в данном случае первые 4 строки нулей и единиц
for(var i = 0; i <= count; i++){
strLine += '0'.repeat(count - i) + '1'.repeat(1 + i*2) + '0'.repeat(count - i) + '\n';
}
// Формируем вторую половину матрицы, в данном случае последние 3 строки нулей и единиц
for(i -= 2; i >= 0; i--){
strLine += '0'.repeat(count - i) + '1'.repeat(1 + i*2) + '0'.repeat(count - i) + '\n';
}
console.log(strLine);
}
)(7);
Код рабочий, но не покидает чувство, что задачу можно решить более изящным способом, то есть сам алгоритм решения задачи можно сделать проще и понятнее. Можно конечно тело циклов вынести в отдельную функцию, но на сам алгоритм решения это не сильно влияет...
В связи с чем хотел бы спросить у сообщества, какие варианты решения данной задачи можно найти?