简单杨辉三角

106 阅读1分钟

在杨辉三角中,从第二行开始每个数都等于其正上方和左上方数之和

1                                       需要注意,每一行中,行数和其值数相等
1 1                                     第一行:有一个值
1 2 1                                   第二行:有二个值
1 3 3 1                                 第三行:三个值        
1 4 6 4 1                               ...
...

前置知识

  1. 数组的使用(数组之中还有数组)

    let arr = [[1]] 这个表示声名一个数组,其中有一个值,这个值也是数组

    如果想在arr中的数组中添加一个值呢。也就是对arr[ 0 ] 中的值 [ 1 ] 再加一个值

    可以 arr[ 0 ][ 2 ]

    就添加成功了 结果为   [[1,2]]

  2. || 布尔运算符(逻辑运算符)'或' 的使用

    false || 0     // 0

    fale || 5     // 5



  function sanjiao (n) {
  
    let arr = [[1]]            //先写出第一行和其值
    
    for(let i = 1; i<n; i++) {
    
      arr[i] = []              //解决行数问题,输入2,会打印2行;输入3会打印3行...
      
      for(let j = 0; j<i+1;j++) {       //解决行数和值数相等
      
        arr[i][j] = (arr[i-1][j] || 0) + (arr[i-1][j-1] || 0)       //解决其值,计算的问题
      
      }
    
    }  
         
       returen arr
  }
  
  console.log(sanjiao(4))          //调用函数,并打印

需要思考:
1. 用函数方式解决
2. 为什么第一个for循环中的i<n ?
3. 为什么第二个for循环中j=0; j<i+1 ?
4. 对于其值,计算的写法