用c++二维数组求杨辉三角
时间: 2023-11-13 22:12:45 浏览: 257
以下是使用C++二维数组求杨辉三角的代码:
```cpp
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "请输入杨辉三角的行数:";
cin >> n;
int a[n][n];
// 初始化第一行和对角线上的元素为1
for (int i = 0; i < n; i++) {
a[i][0] = 1;
a[i][i] = 1;
}
// 计算其余元素
for (int i = 2; i < n; i++) {
for (int j = 1; j < i; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
// 输出杨辉三角
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
运行结果:
```
请输入杨辉三角的行数:6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
```
相关问题
用二维数组打印杨辉三角c++
以下是用二维数组打印杨辉三角的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
int num[10][10] = {0};
int i = 0, j = 0;
for (i = 0; i < 10; i++) {
num[i][0] = 1; // 把每行的第1位值赋值为1;
num[i][i] = 1; // 把右边对角线的值全部赋值为1;
}
for (i = 2; i < 10; i++) { // 观察杨辉三角的图,可得出这么一个规律,除了第一行第一列的值之外,其他的值都是上一行的左右两个值之和;所以从第二行开始运算
for (j = 1; j < i; j++) {
num[i][j] = num[i - 1][j] + num[i - 1][j - 1];
}
}
for (i = 0; i < 10; i++) {
for (j = 0; j < 9 - i; j++) {
cout << " ";
}
for (j = 0; j <= i; j++) {
cout << num[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
C++实现-用二维数组输出杨辉三角
在C++中,我们可以使用嵌套循环和动态内存分配来打印杨辉三角。杨辉三角是一个数学术语,每一行都是一个等差数列,每个数字等于它上方两个数字之和。下面是简单的代码示例:
```cpp
#include <iostream>
using namespace std;
// 动态创建二维数组
int** createTriangle(int size) {
int** triangle = new int*[size];
for (int i = 0; i < size; ++i) {
triangle[i] = new int[i + 1]; // 每一行元素个数比上一行多1
triangle[i][0] = triangle[i][i] = 1; // 边界条件,第一行和对角线全为1
}
return triangle;
}
// 打印杨辉三角
void printTriangle(int** triangle, int size) {
for (int i = 0; i < size; ++i) {
for (int j = 0; j <= i; ++j) {
cout << triangle[i][j] << " ";
}
cout << endl;
}
delete[] triangle[0]; // 删除每行最后一个元素所指向的空间
for (int i = 1; i < size; ++i) {
delete[] triangle[i]; // 删除所有行的元素空间
}
delete[] triangle; // 删除二维数组本身
}
int main() {
int size = 5; // 设置三角形大小
int** triangle = createTriangle(size);
printTriangle(triangle, size);
return 0;
}
```
阅读全文