台阶问题
2005-04-20 15:51
218 查看
#include <stdio.h>
#define N 5
int index;
int que[N];
void print()
{
for(int i=0;i<index;i++)
printf("%d ",que[i]);
printf("/n");
}
void step(int n)
{
if (n==0)
{
print();
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;
}
}
void main()
{
step(N);
}
#define N 5
int index;
int que[N];
void print()
{
for(int i=0;i<index;i++)
printf("%d ",que[i]);
printf("/n");
}
void step(int n)
{
if (n==0)
{
print();
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;
}
}
void main()
{
step(N);
}