使用C++写一个程序构造并输出n(<=20)阶杨辉三角形
时间: 2024-05-11 12:14:03 浏览: 100
```c
#include <stdio.h>
int main() {
int n;
printf("请输入一个小于等于20的正整数:");
scanf("%d", &n);
int triangle[20][20] = {0}; // 初始化所有值为0
for (int i = 0; i < n; i++) {
for (int 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];
}
}
}
// 输出杨辉三角
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
return 0;
}
```
相关问题
杨辉三角形是我国古代数学家杨辉揭示二项展开式各项系数的数字三角形,如下图给出了7阶杨辉三角形,请编写程序,构造并输出n(n<=20)阶杨辉三角形。要求分别给出算法伪代码和C++源代码、以及运行结果。
杨辉三角是利用递归或者动态规划的方式来构建的。下面是一个简单的算法伪代码和C++实现:
**伪代码示例:**
```python
function printPascalTriangle(n):
triangle = [[1]]
for i in range(1, n):
row = [1]
for j in range(1, i):
row.append(triangle[i-1][j-1] + triangle[i-1][j])
row.append(1)
triangle.append(row)
for row in triangle:
print(row)
printPascalTriangle(n) // 替换n为你需要的阶数
```
**C++源代码示例:**
```cpp
#include <iostream>
using namespace std;
void printPascalTriangle(int n) {
vector<vector<int>> triangle(n + 1, vector<int>(n + 1));
triangle[0][0] = 1;
for (int i = 1; i <= n; ++i) {
triangle[i][0] = 1;
triangle[i][i] = 1;
for (int j = 1; j < i; ++j) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
for (const auto &row : triangle) {
for (int num : row) {
cout << num << ' ';
}
cout << endl;
}
}
int main() {
int n = 7; // 或者设置为你想打印的阶数
printPascalTriangle(n);
return 0;
}
```
运行结果(假设n=7):
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
```
这个C++代码首先创建了一个二维数组表示杨辉三角,然后填充每一行的元素,最后按行打印出来。每一行都是前一行的两个相邻元素之和。
用c++构造一个n(n≤20)阶的杨辉三角
杨辉三角是一个二项式系数构成的三角形,用于计算组合数。在C++中,我们可以用二维数组来构建一个n阶的杨辉三角。以下是一个简单的示例,如何用嵌套循环生成这个三角形:
```cpp
#include <iostream>
using namespace std;
void printYuanHuiTriangle(int n) {
int triangle[n][n]; // 初始化一个n x n的二维数组
// 初始化第一行和第一列
for (int i = 0; i < n; ++i) {
triangle[0][i] = 1;
triangle[i][0] = 1;
}
// 构建杨辉三角
for (int row = 1; row < n; ++row) {
for (int col = 1; col < row + 1; ++col) {
triangle[row][col] = triangle[row - 1][col - 1] + triangle[row - 1][col];
cout << triangle[row][col] << " ";
}
cout << endl; // 每行结束换行
}
}
int main() {
int n = 5; // 设置杨辉三角的阶数
printYuanHuiTriangle(n);
return 0;
}
```
当你运行这段代码,它会打印出一个5阶的杨辉三角。你可以根据需要修改`main`函数中的`n`值来改变阶数。
阅读全文
相关推荐













