C++-キュー適用-二項係数を表示


キュー適用:二項係数を表示
二項式(a+b)^iで展開された係数が楊輝三角形(Pascal三角形)を構成する各行の首位は1であり,中間の数値aiは上層a(i-1)とaiの和であり,このように推定される.キューのFIFOの特徴を利用して各層の数値を格納し,三角形を階層順にキューに順次格納する.
#include 
#include 

using namespace std;

void yanghuiTriangle(int n)
{
    queue<int> q;
    int s,t;

    q.push(1); q.push(1);
    cout << 1<<"\t"<<1;
    for(int i=2;i<=n;i++){
        cout <<endl;
        q.push(1);
        cout <<1<<"\t";
        s=q.front();
        q.pop();
        for(int j=2;j<=i;j++)
        {
            t=q.front();  //t  i-1  j     
            q.pop();
            q.push(s+t);   //s+t  i  j     
            cout << s+t <<"\t";  
            s=t;
        }
        q.push(1);
        cout << 1;
    }
    cout <<endl;
}
int main()
{
    yanghuiTriangle(4);
    return 0;
}