08/08/12 14:13:04
うわ、再帰と非再帰間違った。
こっちを適当に非再帰に書き直したやつを張っちまった。
#include<stdio.h>
void go(char s[4],int flag,int i){
int j;
if(i==3){puts(s);return;}
for(j=0;j<6;++j)
if(!(flag&1<<j)){
s[i]=j+'A';
go(s,flag|1<<j,i+1);
}
}
int main(void){
char s[4];
go(s,0,0);
return 0;
}