用c++数组写一个杨辉三角
时间: 2023-04-10 21:03:44 浏览: 113
以下是用 C 数组写一个杨辉三角的代码:
```
#include <stdio.h>
int main() {
int rows, coef = 1;
printf("请输入要打印的行数:");
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;
}
```
相关问题
用数组形式输出标准杨辉三角
杨辉三角(Pascal's triangle)是一个非常经典的数学图形,它的每一行都是从上一行计算得出的,每个数字是其上方两个数字之和。在C++中,我们可以使用二维数组来存储并打印杨辉三角。这里有一个简单的示例,我们将使用嵌套循环来生成和打印数组:
```cpp
#include <iostream>
// 初始化一个大小为n+1的二维数组来存储杨辉三角
int** generate_pascals_triangle(int n) {
int** triangle = new int*[n + 1];
for (int i = 0; i <= n; ++i) {
triangle[i] = new int[i + 1];
triangle[i][0] = triangle[i][i] = 1;
if (i > 1) {
for (int j = 1; j < i; ++j) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
}
return triangle;
}
// 打印杨辉三角
void print_triangle(int** triangle, int size) {
for (int i = 0; i < size; ++i) {
for (int j = 0; j <= i; ++j) {
std::cout << triangle[i][j] << " ";
}
std::cout << "\n";
}
// 清理内存
for (int i = 0; i <= size; ++i) {
delete[] triangle[i];
}
delete[] triangle;
}
int main() {
int n = 5; // 想要显示的三角形的层数
int** triangle = generate_pascals_triangle(n);
print_triangle(triangle, n);
return 0;
}
```
运行这个程序后,它会输出一个五层的杨辉三角。
用c++二维数组求杨辉三角
以下是使用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
```
阅读全文