也是中软笔试的算法题,当时并不知道叫杨辉三角,唉。N年不用了,还得再拾起,为了那个梦。
#include <stdio.h>
void main()
{
int a[50][50];
int i,j,n;
printf("Please input Number:");
scanf("%d",&n);
for (i=0;i<n;i++)
{
for (j=0;j<=i;j++)
{
if (j==0 ||j==i)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("%5d",a[i][j]);
}
printf("\n");
}
getch();
}
/*TC 2.0测试*/
#define size 100
#define true 1
#define false 0
typedef int elemtype;
typedef struct queue
{
elemtype element[size];
int front;
int rear;}queue;/*jie gou ti*/
void initqueue(queue*q)
{
q->front=q->rear=0;}/*chu shi hua*/
int enqueue(queue*q,int x)
{
if((q->rear+1)%size==q->front)
return(false);
q->element[q->rear]=x;
q->rear=(q->rear+1)%size;
return(true); } /*chong xin she zhi wei zhi zhen*/
int dequeue(queue*q,int*x)
{
if(q->front==q->rear)
return(false);
*x=q->element[q->front];
q->front=(q->front+1)%size;
return(true);}
int queueempty(queue*q)
{
if(q->front==q->rear)
return(false); }
int getqueue(queue*q,int *e)
{
if(q->front==q->rear)
return(false);
else{*e=q->element[q->front];}
}
void main()
{int n,i,k,e;
int s;
queue q;
printf("please input N");
scanf("%d",&n);
for(i=1;i<=n;i++)
printf(" ");printf("1");
printf("\n");
initqueue(&q);
enqueue(&q,0);
enqueue(&q,1);
enqueue(&q,1);
k=1;
while(k<n)
{
for(i=1;i<=n-k;i++)
printf(" ");
enqueue(&q,0);
do{
dequeue(&q,&s);
getqueue(&q,&e);
if(e!=0)printf("%d ",e);
else printf("\n");
enqueue(&q,s+e);}
while(e!=0);
k++;}
dequeue(&q,&e);
while(!queueempty(&q))
{dequeue(&q,&e);
printf("%d ",e);
clrscr();
}
}
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$