// 互异元素的全排列
// 元素个数应为常数
// 此法不搞递归调用
// 注意输出是无序的
#include<stdio.h>
void rot(char *s)
{
char chr=*s,*p=s+1;
while(*p)*s++=*p++;
*s=chr;
}
main()
{ char s[]="12345678";
int a,b,c,d,e,f,g;
for(a=0;a<8;a++,rot(s+0))
for(b=0;b<7;b++,rot(s+1))
for(c=0;c<6;c++,rot(s+2))
for(d=0;d<5;d++,rot(s+3))
for(e=0;e<4;e++,rot(s+4))
for(f=0;f<3;f++,rot(s+5))
for(g=0;g<2;g++,rot(s+6))
printf("%-10s",s);
}
//此例再加少量指令可解“八皇后”
//但愿楼主看了以后能够举一反三