简化这串代码#include <iostream>#include <vector>using namespace std;vector<vector<int>> generateTriangle(int n) { vector<vector<int>> triangle(n, vector<int>(n)); for (int i = 0; i < n; i++) { triangle[i][0] = 1; for (int j = 1; j <= i; j++) { triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]; } } return triangle;}void printTriangle(vector<vector<int>> triangle) { for (auto row : triangle) { for (auto num : row) { if (num != 0) { cout << num << " "; } } cout << endl; }}int main() { vector<vector<int>> triangle = generateTriangle(10); printTriangle(triangle); return 0;}
时间: 2024-03-02 07:48:54 浏览: 60
使用include <iostream>时一定要加using namespace std
好的,以下是简化后的代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> generateTriangle(int n) {
vector<vector<int>> triangle(n, vector<int>(n, 1));
for (int i = 2; i < n; i++) {
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
return triangle;
}
void printTriangle(vector<vector<int>> triangle) {
for (auto row : triangle) {
for (auto num : row) {
cout << num << " ";
}
cout << endl;
}
}
int main() {
vector<vector<int>> triangle = generateTriangle(10);
printTriangle(triangle);
return 0;
}
```
解释一下代码:
- 在 `generateTriangle` 函数中,我们将二维向量的每个元素都初始化为 1,这样就不需要在循环中再单独处理第一列的情况了。
- 在 `generateTriangle` 函数中,我们将外层循环从 0 改为 2,这样就不需要在循环中单独处理前两行的情况了。
- 在 `printTriangle` 函数中,我们不再判断数字是否为 0,因为我们已经将所有元素都初始化为 1,所以输出结果不会出现 0。
希望这个简化后的代码对你有帮助!
阅读全文