设计一个算法,打印杨辉三角形
时间: 2023-11-18 19:57:08 浏览: 95
以下是打印杨辉三角形的 Python 代码:
```python
def print_pascal_triangle(n):
result = []
for i in range(n):
row = [1] * (i+1)
for j in range(1, i):
row[j] = result[i-1][j-1] + result[i-1][j]
result.append(row)
# 打印杨辉三角
for row in result:
print(' '.join(map(str, row)).center(n*2))
```
算法描述:
1. 初始化一个空列表 result 用于存储杨辉三角形
2. 循环 n 次,每次生成一行杨辉三角形
- 初始化当前行 row,将其所有元素置为 1
- 对于当前行的第 2 到 i-1 列,计算其值为上一行对应列和前一列的和
- 将当前行加入 result 列表
3. 打印杨辉三角形
- 对于 result 中的每一行,将其转换成字符串并居中对齐,输出到控制台上
例如,调用 `print_pascal_triangle(5)` 将会输出:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
```
相关问题
用Java利用递归算法打印杨辉三角形(打印9行)。
在Java中,可以使用递归算法来打印杨辉三角形。杨辉三角形是一种数学模式,每一行都是前一行数字之和,最底层是1,从第二层开始,每一层的第一个和最后一个数字都是1。以下是打印9行杨辉三角形的一个示例:
```java
public class PascalTriangle {
public static void printPascalTriangle(int numRows) {
printRow(1, numRows); // 打印指定行数的杨辉三角形
}
// 递归函数,打印一行杨辉三角形
private static void printRow(int row, int numRows) {
if (row > numRows) { // 结束条件,当达到指定行数停止
return;
}
// 打印当前行的数字
for (int i = 0; i <= row; i++) {
System.out.print(pascalNumber(row, i) + " ");
}
System.out.println(); // 每行结束换行
// 递归打印下一行
printRow(row + 1, numRows);
}
// 计算杨辉三角形的特定位置数字(组合公式)
private static int pascalNumber(int row, int col) {
if (col == 0 || col == row) {
return 1; // 边缘情况,数字总是1
} else {
return pascalNumber(row - 1, col - 1) + pascalNumber(row - 1, col);
}
}
public static void main(String[] args) {
printPascalTriangle(9); // 打印9行
}
}
```
当你运行`printPascalTriangle(9)`时,它会打印出九行完整的杨辉三角形。
java编写利用递归算法打印杨辉三角形(打印9行)。
在Java中,你可以使用递归的方式来打印杨辉三角形。杨辉三角是一个数学术语,每个数字都是前两个数字之和,从1开始对角线上的数字保持不变。下面是一个简单的递归函数示例,用于打印九行的杨辉三角:
```java
public class Main {
public static void main(String[] args) {
int n = 9; // 行数
printPascalTriangle(n);
}
// 递归函数打印杨辉三角
public static void printPascalTriangle(int rows) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(pascalTriangleElement(i, j) + " ");
}
System.out.println(); // 换行
}
}
// 计算杨辉三角中某一行的第j个元素
public static int pascalTriangleElement(int row, int col) {
if (col == 0 || col == row) { // 边界条件:第一行和最后一列都是1
return 1;
} else {
return pascalTriangleElement(row - 1, col - 1) + pascalTriangleElement(row - 1, col); // 递归计算当前元素
}
}
}
```
这个程序首先定义了一个`printPascalTriangle`函数,它接收行数作为参数。内部有两个嵌套循环,外层循环控制行数,内层循环控制每行的元素。`pascalTriangleElement`函数用于计算给定位置的数字,并通过递归调用自身来实现。
阅读全文