|
发表于 2020-1-5 11:00:01
|
显示全部楼层
#include <stdio.h>
void main()
{
const int N=4;
unsigned int s[N],d[N],e[N];
int p,q,r,i,k;
s[0]=s[1]=1;
for(i=2;i<N;++i)
{
s[i]=d[i]=i;
e[i]=-1;
}
bool loop =false;
do{
q=0;
lop = false;
for(i=1;i<N;++i)printf("%d ",s[i]);
printf("\n");
for(k=N-1;k>=2;--k)
{
d[k]=d[k]+e[k];
p=d[k];
if(p==k)
e[k]=-1;
else if(p==0)
{
e[k]=1;++q;
}
else
{
p+=q;r=s[p];s[p]=s[p+1];s[p+1]=r;
loop = true;
}
}while(loop);
}
}
|
|