用JavsScript 实现杨辉三角
时间: 2023-02-26 17:39:13 浏览: 45
下面是使用 JavaScript 实现杨辉三角的代码示例:
```
function pascalsTriangle(numRows) {
let result = [];
for (let i = 0; i < numRows; i++) {
result[i] = [];
for (let j = 0; j <= i; j++) {
if (j === 0 || j === i) {
result[i][j] = 1;
} else {
result[i][j] = result[i-1][j-1] + result[i-1][j];
}
}
}
return result;
}
```
这段代码中,`pascalsTriangle` 函数接收一个整数 `numRows`,表示杨辉三角的行数。在函数内部,我们使用两个循环遍历每一行,每一列,并使用递推公式(`result[i][j] = result[i-1][j-1] + result[i-1][j]`)计算每个位置的值。最终,返回一个二维数组,其中每一行表示一行的数字。
相关问题
在web页面实现杨辉三角
可以使用JavaScript来实现杨辉三角的生成,以下是一个简单的例子:
```html
<!DOCTYPE html>
<html>
<head>
<title>杨辉三角</title>
</head>
<body>
<h1>杨辉三角</h1>
<div id="triangle"></div>
<script>
function generateTriangle(n) {
var triangle = [];
for (var i = 0; i < n; i++) {
triangle[i] = [];
for (var j = 0; j <= i; j++) {
if (j === 0 || j === i) {
triangle[i][j] = 1;
} else {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
}
return triangle;
}
function renderTriangle(triangle) {
var output = "";
for (var i = 0; i < triangle.length; i++) {
output += "<p>";
for (var j = 0; j < triangle[i].length; j++) {
output += triangle[i][j] + " ";
}
output += "</p>";
}
document.getElementById("triangle").innerHTML = output;
}
var n = 10; // 生成10行杨辉三角
var triangle = generateTriangle(n);
renderTriangle(triangle);
</script>
</body>
</html>
```
在这个例子中,我们定义了两个函数:`generateTriangle` 和 `renderTriangle`。`generateTriangle` 函数用于生成杨辉三角的数组,`renderTriangle` 函数用于将生成的数组渲染到页面上。我们通过调用这两个函数来实现杨辉三角的生成和展示。
在 `generateTriangle` 函数中,我们首先定义一个空数组 `triangle`,表示杨辉三角。然后使用两个嵌套的循环来遍历每一行和每一列,根据杨辉三角的规律来计算每个位置上的数字,并将其存入数组中。
在 `renderTriangle` 函数中,我们首先定义一个空字符串 `output`,用于存储要展示的 HTML 代码。然后使用两个嵌套的循环来遍历数组中的每个数字,将其转换为 HTML 代码并拼接到 `output` 中。最后,将 `output` 设置为 `triangle` 容器的 innerHTML,即可将杨辉三角展示在页面上。
在这个例子中,我们生成了10行杨辉三角。你可以根据需要修改 `n` 的值,来生成不同行数的杨辉三角。
使用Javascript跟HTML打印杨辉三角
可以使用以下代码实现:
```html
<!DOCTYPE html>
<html>
<head>
<title>杨辉三角</title>
</head>
<body>
<script>
function generateTriangle(numRows) {
var triangle = [];
for (var i = 0; i < numRows; i++) {
triangle[i] = [];
for (var j = 0; j <= i; j++) {
if (j === 0 || j === i) {
triangle[i][j] = 1;
} else {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
}
return triangle;
}
function printTriangle(triangle) {
var numRows = triangle.length;
for (var i = 0; i < numRows; i++) {
var row = triangle[i];
var rowStr = "";
for (var j = 0; j < row.length; j++) {
rowStr += row[j] + " ";
}
console.log(rowStr);
}
}
var numRows = 10;
var triangle = generateTriangle(numRows);
printTriangle(triangle);
</script>
</body>
</html>
```
这段代码会生成一个大小为10的杨辉三角,并将其打印在控制台中。你可以将console.log()改为document.write(),这样就可以在网页中打印出来。