#include#include #include #define error 1 #define ok 0 typedef int elem; typedef int status; typedef struct qnode { elem data; struct qnode *next; }qnode,*queueptr; typedef struct { queueptr front; queueptr rear; }linkqueue; status init_queue(linkqueue &q) { q.front=q.rear=(queueptr)malloc(sizeof(qnode)); q.rear->next=NULL; return ok; } status push_queue(linkqueue &q,elem e) { q.rear->data=e; queueptr s; s=(queueptr)malloc(sizeof(qnode)); q.rear->next=s; q.rear=s; q.rear->next=NULL; return ok; } status pop_queue(linkqueue &q) { queueptr t; t=q.front->next; q.front=t; return ok; } void print_yanghui(linkqueue &q,elem n) { queueptr t; t=q.front->next; printf("%d",t->data); t=t->next; while(t->next!=NULL) { if(t->data!=0) { if(n>=1&&n<=5) printf("%2d",t->data); else if(n>=6&&n<=9) printf("%3d",t->data); else if(n>=10&&n<=13) printf("%4d",t->data); else if(n>=14&&n<=16) printf("%5d",t->data); else if(n>=17&&n<=20) printf("%6d",t->data); else if(n>=21&&n<=23) printf("%7d",t->data); else if(n>=24&&n<=26) printf("%8d",t->data); else if(n>=27&&n<=30) printf("%9d",t->data); } else printf(""); t=t->next; } printf("n"); } void yanghui_queue(elem n) { elem m=n; linkqueue q; init_queue(q); for(int i=1;i<=n;i++) { if(i==1) { push_queue(q,0); push_queue(q,1); push_queue(q,0); print_yanghui(q,m); } else if(i>1) { for(int j=1;j<=i+2;j++) { if(j==1) push_queue(q,0); else if(j==i+2) { push_queue(q,0); pop_queue(q); } else { push_queue(q,q.front->data+q.front->next->data); pop_queue(q); } } print_yanghui(q,m); } } } int main() { elem n; while(scanf("%d",&n)!=EOF) { yanghui_queue(n); printf("n"); } return 0; }



