下面是代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#define MaxSize 100
int dp[MaxSize] = { 0 };
int n = 3;
int arr[MaxSize] = { 0 };
int count = 0;
void fun(int index)
{
if (index == n)
{
printf("%d.\n", ++count);
for (int i = 0; i < n; i++)
{
printf("%d", arr[i]);
}
printf("\n");
}
for (int i = 1; i <=n; i++)
{
if (dp[i] == 0)
{
arr[index] = i;
dp[i] = 1;
fun(index+1);
dp[i] = 0;
}
}
}
int main()
{
fun(0);
return 0;
}
个数可以用高中学的全排序公式验证一下
运行结果如下
我还补了一张n==5的时候的,120个;