用迴圈佇列解決二項式展開式的係數--楊輝三角
阿新 • • 發佈:2019-01-23
/***********************************************
******用迴圈佇列解決(a+b)i次方的二項式展開式的係數*****
************************************************/
#include<stdio.h>
#define MAXSIZE 50
int main(void)
{
int num[MAXSIZE];
//first隊頭指標,rear對尾指標,last當前項的最後一個係數=rear-1
int first,rear,last;
int n,i;
while((scanf("%d",&n))!=EOF)//冪為n
{
num[0]=1;num[1]=1;//第一項
first=0;rear=2;
for(i=1;i<n;i++)//從冪為1到冪為n需要的迴圈次數
{
//從冪為m-1到冪為m的變化
last=rear-1;
while(first!=last)
{
num[rear]=num[first]+num[(first+1)%MAXSIZE];
first=(first+1)%MAXSIZE;
rear=(rear+1)%MAXSIZE;
}
num[rear]=1;
rear=(rear+1)%MAXSIZE;
}
while(first!=rear)
{
printf("%d ",num[first]);
first=(first+1)%MAXSIZE;
}
putchar('\n');
}
return 0;
}