使用console.log上的javascript显示输出以这种形式打印数字

时间:2019-06-20 19:37:01

标签: javascript

我想用这种格式打印数字。

    1
   121
  12321
 1234321
123454321

我写了一个打印一些数字的函数,但它与输出不一样。我认为该错误可能在for循环之一内。 这是我的代码:

    var numRows = 5,
        triangle, 
        start, 
        stop;

    function pascalRecursive(n, a) {
      if (n < 2) return a; 

      var prevRow = a[a.length-1];
      var curRow = [1];

      for (var i = 1; i < prevRow.length; i++) {
        curRow[i] = prevRow[i] + prevRow[i];
      }
      curRow.push(1);
      a.push(curRow);

      return pascalRecursive(n-1, a); 
    }

    var triangle = pascalRecursive(numRows, [[1]]);
    for(var i = 0; i < triangle.length; i++)
      console.log(triangle[i]+"\n");

1 个答案:

答案 0 :(得分:0)

您可以使用地图功能将上一行的所有数字增加1 然后在前面和后面贴上1。

function pascalRecursive(n, a) {
  if (n < 2) return a;

  var prevRow = a[a.length - 1];
  var prevRowIncreased = prevRow.map(x => x + 1);
  a.push([1,...prevRowIncreased,1]);

  return pascalRecursive(n - 1, a);
}