数字金字塔c++代码
时间: 2023-11-06 20:05:33 浏览: 259
C语言输出数字金字塔.c
5星 · 资源好评率100%
引用和引用[2]都提供了数字金字塔的C++代码示例,它们的实现方式略有不同。引用使用了二维数组来存储数字金字塔,通过两层循环来计算每个数字的最大路径和。而引用则使用了vector嵌套vector的方式来存储数字金字塔,同样通过两层循环来计算最大路径和。以下是两个示例代码:
引用[1]示例代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int numRows;
cout << "请输入数字金字塔的行数:";
cin >> numRows;
int pyramid[numRows][numRows];
cout << "请输入数字金字塔的每个数字(按行输入):" << endl;
for (int i = 0; i < numRows; i++) {
for (int j = 0; j <= i; j++) {
cin >> pyramid[i][j];
}
}
for (int i = numRows - 2; i >= 0; i--) {
for (int j = 0; j <= i; j++) {
pyramid[i][j] += max(pyramid[i+1][j], pyramid[i+1][j+1]);
}
}
cout << "数字金字塔的最大路径和为:" << pyramid[0][0] << endl;
return 0;
}
```
引用示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int r;
cin >> r;
vector<vector<int>> matrix(r);
for (int j = 0; j < r; j++) {
for (int k = 0; k < j + 1; k++) {
int temp;
cin >> temp;
matrix[j].push_back(temp);
}
}
for (int j = r - 1; j > 0; j--) {
for (int k = 0; k < j; k++) {
matrix[j][k] > matrix[j][k + 1] ? matrix[j - 1][k] += matrix[j][k] : matrix[j - 1][k] += matrix[j][k + 1];
}
}
cout << matrix[0][0] << endl;
}
return 0;
}
```
阅读全文