JS递归实现杨辉三角

40次阅读

共计 525 个字符,预计需要花费 2 分钟才能阅读完成。

1
1 1
1 2 1

输入 n , 输出数组
假设输入 3,输出数组 [[1],[1,1],[1,2,1]]

function triangle(num){
let arr = [];
arr.push([1]);
loop([1]);

function loop(lastarr){// 代码循环的部分
if(lastarr.length < num){
let newarr = [];
newarr[0] = 1; // 头部是 1
newarr[lastarr.length] = 1; // 尾部也是 1
for(let i = 0; i < lastarr.length-1; i++){
newarr[i+1] = lastarr[i] + lastarr[i+1];
}
arr.push(newarr);
loop(newarr);
}
}
return arr;
}
console.log(triangle(5));
如果是需要输入下面的结果
1
1 1
1 2 1

输入 n , 输出数组
假设输入 3,输出数组 [1, 1, 1, 1, 2, 1]

只需要添加 arr.push 的时候添加扩展运算符 (…) 即可,这里只需要更改两个地方
1. arr.push([1]) 改成 arr.push(…[1])
2. arr.push(newarr) 改成 arr.push(…newarr)

正文完
 0