使用【Visual C++】打印杨辉三角形的前10行 ,杨辉三角的首尾元素都是1,而中间的每个数是由它上方两个数相加而得到的
时间: 2024-12-28 20:32:09 浏览: 3
在Visual C++中,我们可以使用嵌套循环来打印杨辉三角的前10行。这是一种经典的递推算法问题,以下是实现的代码:
```cpp
#include<iostream>
using namespace std;
void printPascalTriangle(int n) {
for(int line = 0; line < n; ++line) {
// 打印每一行的空格
for(int spaces = n - line - 1; spaces > 0; --spaces) {
cout << " ";
}
// 打印当前行的数字,从左侧开始
for(int col = 0; col <= line; ++col) {
if(col == 0 || col == line) {
cout << 1 << " ";
} else {
// 计算当前位置的数字,等于上面两行相应位置的数字之和
cout << matrix[line][col - 1] + matrix[line][col] << " ";
}
}
cout << endl;
// 初始化每行的临时存储数组,用于计算下一行
for(int i = 0; i < line + 1; ++i) {
matrix[line + 1][i] = matrix[line][i] + matrix[line][i + 1];
}
}
}
int main() {
int triangleLines = 10;
int** matrix = new int*[triangleLines]; // 创建动态数组
// 初始化第一行和第一列的值
for(int i = 0; i < triangleLines; ++i) {
matrix[i] = new int[i + 1];
matrix[i][0] = matrix[i][i] = 1;
}
printPascalTriangle(triangleLines);
// 清理内存
for(int i = 0; i < triangleLines; ++i) {
delete[] matrix[i];
}
delete[] matrix;
return 0;
}
```
阅读全文