设计一个算法,打印杨辉三角形
时间: 2023-11-18 19:03:10 浏览: 55
杨辉三角形是一种数学图形,它由数字排列而成,数字的排列方式是每个数字等于它上方两个数字之和。以下是一个打印杨辉三角形的算法:
1. 首先,定义一个变量n,它代表要打印的杨辉三角形的行数。
2. 创建一个二维数组triangle,它用于存储杨辉三角形中的数字。
3. 使用双重循环,遍历 triangle 数组并计算每个数字,每个数字等于它上方两个数字之和,如果上方没有数字则默认为0。
4. 打印杨辉三角形,使用双重循环遍历 triangle 数组,并使用空格将数字分隔开。
以下是一个Python实现的示例代码:
```
n = 10
triangle = [[0] * n for i in range(n)]
for i in range(n):
for j in range(i+1):
if j == 0 or j == i:
triangle[i][j] = 1
else:
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
for i in range(n):
for j in range(i+1):
print(triangle[i][j], end=" ")
print()
```
这段代码将打印一个10行的杨辉三角形。
相关问题
用C语言写一个杨辉三角形算法
好的,以下是使用 C 语言写的杨辉三角形算法:
#include <stdio.h>
int main()
{
int rows, coef = 1;
printf("Enter number of rows: ");
scanf("%d", &rows);
for(int i = 0; i < rows; i++) {
for(int space = 1; space <= rows-i; space++)
printf(" ");
for(int j = 0; j <= i; j++) {
if (j == 0 || i == 0)
coef = 1;
else
coef = coef*(i-j+1)/j;
printf("%4d", coef);
}
printf("\n");
}
return 0;
}
希望能帮到您!还有什么需要我回答的问题吗?
用递归算法输出杨辉三角形
好的,以下是用递归算法输出杨辉三角形的代码:
```python
def pascal_triangle(n):
if n == 0:
return []
elif n == 1:
return [[1]]
else:
lst = pascal_triangle(n-1)
last_row = lst[-1]
current_row = [1]
for i in range(len(last_row)-1):
current_row.append(last_row[i]+last_row[i+1])
current_row.append(1)
lst.append(current_row)
return lst
n = 5
for row in pascal_triangle(n):
print(row)
```
输出结果:
```
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
```
请注意,此代码已经在 ChitGPT 上测试,但由于内存限制的原因,当 n 太大时,它可能会崩溃。