调试Pascal的三角形

时间:2019-03-11 23:44:18

标签: javascript arrays pascals-triangle

有人可以告诉我我在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)

1 个答案:

答案 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)