示例#1
0
void c_allperms(int *a, const int *nin, const int *fn){
	const int n = *nin;
	int i;

	for(i=0 ; i<n  ;i++){
		a[i] = i+1;
	}

	for(i=1 ; i < (*fn) ; i++){
	  for(int j=0 ; j<n ; j++){
	    a[i*n + j] = a[(i-1)*n+j];
	  }
	  nextperm (a+i*n, n); 
	}
}
示例#2
0
文件: permfac.c 项目: MiCHiLU/algo
int main()
{
    int i, count;

    count = 0;
    for (i = 0; i < N; i++) a[i] = N - i - 1;
    do {
        count++;
        printf("%5d: ", count);
        for (i = N - 1; i >= 0; i--) printf("%4d", a[i]);
        printf("\n");
        encode();
        printf("%5d: ", count);
        for (i = N - 1; i > 0; i--) printf("%4d", a[i]);
        printf("\n");
        decode();
        printf("%5d: ", count);
        for (i = N - 1; i >= 0; i--) printf("%4d", a[i]);
        printf("\n\n");
    } while (nextperm());
    return EXIT_SUCCESS;
}