有人可以告诉我我在Java语言中对Pascal三角形所做的错误操作吗?我看到一个使用递归的线程已经存在,但是,如果不逐字复制,在我看来,代码看起来太相似了,无法破译我做错了什么。我可以对自己错过的事情或可以改善的地方重新审视。谢谢
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)
答案 0 :(得分:1)
就像您错误地添加了一个新数组'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)