33,010
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
void savePermutation(int *sa, int *a, int n, int k)
{
static int pos = 0;
if(n == k+1)
for(int i = 0; i < n; pos++)
sa[pos] = a[i];
else
for(int i = k; i < n; i++)
{
int t = a[k];
a[k] = a[i];
a[i] = t;
savePermutation(sa, a, n, k+1);
a[i] = a[k];
a[k] = t;
}
}
void main()
{
int perm[4*3*2*1][4];
int a[4] = { 1,2,3,4 };
savePermutation(perm[0], a, 4, 0);
int count =0;
for(int b = 0; b < 24; b++)
for(int c = 0; c < 24; c++)
for(int d = 0; d < 24; d++, count++)
{
printf("[ ");
for(int i = 0; i < 4; i++)
printf("(A%d,B%d,C%d,D%d) ", i+1, perm[b][i], perm[c][i],perm[d][i]);
printf("]\n");
}
printf("combination count=%d\n", count);
}
#include <iostream>
using namespace std;
int sl;
int L[4][4];
int H[][4]={
1,2,3,4,
1,2,4,3,
1,3,2,4,
1,3,4,2,
1,4,2,3,
1,4,3,2,
2,1,3,4,
2,1,4,3,
2,3,1,4,
2,3,4,1,
2,4,1,3,
2,4,3,1,
3,1,2,4,
3,1,4,2,
3,2,1,4,
3,2,4,1,
3,4,1,2,
3,4,2,1,
4,1,2,3,
4,1,3,2,
4,2,1,3,
4,2,3,1,
4,3,1,2,
4,3,2,1
};
void f( ){
int i, j, k, l;
for( l=0; l<4; ++l )
L[l][3]=l+1;
for( i=0; i<24; ++i ){
for( l=0; l<4; ++l )
L[l][0]=H[i][l];
for( j=0; j<24; ++j ){
for( l=0; l<4; ++l )
L[l][1]=H[j][l];
for( k=0; k<24; ++k ){
for( l=0; l<4; ++l )
L[l][2]=H[k][l];
cout<<++sl<<" :\n";
for( int h=0; h<4; ++h ){
for( int g=0; g<4; ++g )
cout<<char('A'+g)<<L[h][g]<<" ";
cout<<"\n";
}
}
}
}
}
int main( )
{
f();
cout<<sl<<endl;
return 0;
}