策略大本营:自由,平等,友爱。工具文

杨辉三角

2019-06-16  本文已影响0人  元气满满321

杨辉三角:
方法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
上一篇下一篇

猜你喜欢

热点阅读