有人可以告诉我在Javascript中Pascal的Triangle上做错了什么吗?我看到一个使用递归已经存在的线程,但是,没有逐字复制,在我看来,代码看起来太类似于破译我做错了什么。我可以用一些新鲜的眼睛看待我错过或可以改进的东西。谢谢
var pTri = [[1]]
function pascalTriangle(num, pTri) {
if (num < 2) {
return pTri;
}
var newRow = [1];
var lastRow = pTri[pTri.length - 1];
console.log(lastRow)
for (var i = 1; i < lastRow.length; i++) {
var addToNewRow = lastRow[i] + lastRow[i - 1];
newRow.push(addToNewRow);
}
pTri.push(newRow);
return pascalTriangle(num - 1, pTri);
}
pascalTriangle(2, pTri)
看起来你错误地添加了一个新数组'addToNewRow'。
var pTri = [[1]]
function pascalTriangle(num, pTri) {
if (num < 2) {
return pTri;
}
var newRow = [1];
var lastRow = pTri[pTri.length - 1];
console.log(lastRow)
for (var i = 1; i < lastRow.length; i++) {
newRow[i] = lastRow[i] + lastRow[i - 1];
}
newRow.push(1);
pTri.push(newRow);
return pascalTriangle(num - 1, pTri);
}
pascalTriangle(10, pTri)