杨辉三角

杨辉三角:
方法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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容