#include
void perm(int* data, int n, int curr)
{
if (curr==n-1)
{
for (int i = 0; i < n; ++i)
printf("%d", data[i]);
printf("\n");
}
else
{
for (int i = curr; i < n; ++i)
{
int t;
t = data[curr], data[curr] = data[i], data[i] = t;
perm(data, n, curr+1);
t = data[curr], data[curr] = data[i], data[i] = t;
}
}
}
int main()
{
int array[128] = {0};
int n = 0, i = 0;
scanf("%d", &n);/*没有数据合法性检查*/
for (i = 0; i < n; ++i) array[i] = i+1;
perm(array, n, 0);
return 0;
}
4
1234
1243
1324
1342
1432
1423
2134
2143
2314
2341
2431
2413
3214
3241
3124
3142
3412
3421
4231
4213
4321
4312
4132
4123
Press any key to continue
21
能具体点么?貌似是使用多位数组写成