杨辉三角打印队列实现

Author Avatar
sunT 11月 28, 2019
  • 在其它设备中阅读本文章
void printYanghui(int n){
    std::queue<int> q;
    for (int i = 1; i <= n; i++)
    {
        int m,s;
        q.push(0);//为了计算末尾的1
        for (int k = 1; k <= i; ++k)
        {
            if(1==k){
                m = 1;//第一个数都是1,所以不用入队列
            }
            s = q.front();
            q.pop();
            q.push(m + s);

            std::cout << m << " ";
            m = s;

        }

        std::cout << std::endl;
    }
}

打印10行的结果:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1