gpt4 book ai didi

javascript - 在交替的正方形中填充二维数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:38 26 4
gpt4 key购买 nike

您有一个值 n,它将确定二维数组或表格的维度。然后你应该从外层到中心填充数组或表,一次用 1,一次用 0,直到没有其他元素可写。

n=5 n=5

n=6 n=6

已经尝试了很长时间,希望得到任何帮助。不能再填充边界了。

我的最新代码:

function fillArray(n) {
var exArray = [];
var html = '';
for (var i = 0; i < n; i++) {
html+= '<tr>';
exArray[i] = [];
for (var j = 0; j < n; j++) {
exArray[i][j] = 0;
if(i%(n-1)==0 || j%(n-1)==0) {
exArray[i][j] = 1;
}
html+='<td class="text-center">'+exArray[i][j]+' ['+i+','+j+']</td>';
};
html+= '</tr>';
};
return html;
}

最佳答案

我认为最简单的方法是只考虑左上象限,然后对称填充其他象限:

var arr = Array(n);
for(var i=0; i<n/2; ++i) {
arr[ i ] = new Array(n);
arr[n-1-i] = new Array(n);
for(var j=0; j<n/2; ++j)
arr[ i ][j] = arr[ i ][n-1-j] =
arr[n-1-i][j] = arr[n-1-i][n-1-j] =
+ !(Math.min(i,j) % 2);
}

function fillArray(n) {
var arr = Array(n);
for(var i=0; i<n/2; ++i) {
arr[ i ] = new Array(n);
arr[n-1-i] = new Array(n);
for(var j=0; j<n/2; ++j)
arr[ i ][j] = arr[ i ][n-1-j] =
arr[n-1-i][j] = arr[n-1-i][n-1-j] =
+ !(Math.min(i,j) % 2);
}
var table = document.createElement('table');
for(var i=0; i<n; ++i) {
var row = table.insertRow();
for(var j=0; j<n; ++j)
row.insertCell().textContent = arr[i][j];
}
return table;
}
document.body.appendChild(fillArray(9));
td {
width: .8em;
height: .8em;
line-height: .8em;
}

关于javascript - 在交替的正方形中填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29978793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com