请用JavaScript写给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 并作出解释
时间: 2024-02-27 17:17:18 浏览: 76
下面是使用 JavaScript 生成杨辉三角的代码:
```javascript
function generateTriangle(numRows) {
let triangle = [];
// 处理特殊情况
if (numRows === 0) {
return triangle;
}
// 第一行始终为 [1]
triangle.push([1]);
// 从第二行开始生成杨辉三角
for (let i = 1; i < numRows; i++) {
let row = []; // 当前行
// 第一个元素始终为 1
row.push(1);
// 生成中间的元素
for (let j = 1; j < i; j++) {
row.push(triangle[i - 1][j - 1] + triangle[i - 1][j]);
}
// 最后一个元素始终为 1
row.push(1);
// 将当前行添加到结果数组中
triangle.push(row);
}
return triangle;
}
// 测试
console.log(generateTriangle(5));
```
解释:
这段代码定义了一个函数 `generateTriangle`,它接受一个非负整数 `numRows`,生成杨辉三角的前 `numRows` 行,并将结果以二维数组的形式返回。
首先,我们创建一个空数组 `triangle` 来存储生成的杨辉三角。
然后,我们处理特殊情况,当 `numRows` 为 0 时,直接返回空的 `triangle` 数组。
接着,我们将第一行 [1] 添加到 `triangle` 数组中。
然后,我们通过循环从第二行开始生成杨辉三角。对于每一行,我们创建一个空数组 `row` 来存储当前行的元素。
首先,将当前行的第一个元素设为 1。
然后,通过循环生成中间的元素。对于第 i 行的第 j 个元素,它等于上一行的第 j-1 个元素和第 j 个元素的和。
最后,将当前行的最后一个元素设为 1。
在每一行生成完毕后,将当前行 `row` 添加到 `triangle` 数组中。
最后,返回生成好的 `triangle` 数组。
在测试部分,我们调用 `generateTriangle` 函数,并传入参数 5,打印结果。你可以根据需要修改参数 `numRows` 的值来生成不同行数的杨辉三角。
阅读全文