int[] book = new int[4];
int[] mark = new int[4];
static void Main(string[] args)
{
Program num = new Program();
num.fun(1);
Console.ReadLine();
}
void fun(int page)//当page=book[page]最大值时,进行最后一个mark的插排,然后输出排列
{
if (page == 4)
{
for (int i = 1; i < 4; i++)
{
Console.Write(book[i]);
}
Console.WriteLine();
return;//输出排列后,递归到上一层
}
for (int i = 1; i < 4; i++)
{
if (mark[i] == 0)
{
book[page] = i;
mark[i] = 1;
fun(page + 1);//层层递进,完成标记
mark[i] = 0;//上一层标记取消,若取消的标记在循环次数后,将再次递进;若取消的标记在循环次数前,那么再上一层将也取消标记
}
}
return;//全部标记后,递归到上一层
}
全排列
最新推荐文章于 2025-08-12 14:27:48 发布