杨辉三角:
方法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
网友评论