#define STAIR_NUM 5
int total=0;
int index;
int que[STAIR_NUM];
void outputstep()
{
int i;
for(i=0;i<index;i++)
printf("-%d",que[i]);
printf("-/n");
}
void step(int n)
{
if (n==0)
{
total++;
printf("---------the NO.%d ----------/n",total);
outputstep();
return ;
}
que[index++]=1;
step(n-1);
--index;
if (n>1)
{
que[index++]=2;
step(n-2);
--index;
}
if(n>2)
{
que[index++]=3;
step(n-3);
--index;
}
}
main()
{
printf("/n");
printf("--------------------------------------/n");
printf(" stair step /n");
printf("--------------------------------------/n");
step(STAIR_NUM);
printf("/n the total is %d /n",total);
}