杨辉三角

作者: 元气满满321 | 来源:发表于2019-06-16 15:13 被阅读0次

    杨辉三角:
    方法1如下,采用递归,测试输入第100行,第100列,就会超时

    function f(n,m){
      if(n<m){
        return ;
      }
      if(m==1 || n==m){
        return 1;
      }else{
        return f(n-1,m-1) + f(n-1,m);
      }
    }
    console.log(f(7,5));//15       
    

    为满足大数要求,采用递推方式,将值存到二维数组中,减少重复计算

    function f(n,m){
      let arr = [];
      for(let i=1;i<=n;i++){
        arr[i] = new Array();
      }
      for(let i=1;i<=n;i++){
        for(let j=1;j<=i;j++){
          if(j==1 || j==i){
            arr[i][j] = 1;
          }else{
            arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
          }
        }
      }
      return arr[n][m];
    }
    console.log(f(7,5));//15
    

    相关文章

      网友评论

        本文标题:杨辉三角

        本文链接:https://www.haomeiwen.com/subject/slzwfctx.html