用c++实现用队列输出n阶杨辉三角形
时间: 2024-10-29 19:19:05 浏览: 94
用队列的数据结构打印杨辉三角
在C++中,我们可以使用队列(queue)以及循环结构来构建n阶杨辉三角形。杨辉三角是一个二项式系数的几何排列,每一行的数字表示组合数C(n, k),其中n是行数,k是列数。下面是使用队列的一个简单示例:
```cpp
#include <iostream>
#include <queue>
// 功能:计算并打印n阶杨辉三角
void printYanHuiTriangle(int n) {
std::queue<std::pair<int, int>> triangle; // 队列用于存储当前行和元素值
triangle.push({0, 1}); // 初始化队列,第一行只有一个元素1
for (int i = 0; i < n; ++i) {
while (!triangle.empty()) { // 每次开始新一行,先将上一行的剩余元素加入队列
auto [prev_row, prev_num] = triangle.front();
triangle.pop();
// 打印当前行的元素
if (i == 0 || i == prev_row + 1)
std::cout << prev_num << " ";
else
std::cout << prev_num << " " << prev_row + 1 - i << " ";
// 将当前行的下一个元素加入队列
if (prev_row + 1 > i)
triangle.push({prev_row + 1, prev_num + prev_row + 1 - i});
}
std::cout << std::endl; // 结束一行后换行
}
}
int main() {
int n = 5;
printYanHuiTriangle(n);
return 0;
}
```
阅读全文