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