调试Pascal的三角形

问题描述 投票:0回答:1

有人可以告诉我在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)
javascript arrays pascals-triangle
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.