全排列(深度优先搜索+递归)
发布日期:2021-05-07 09:31:31 浏览次数:9 分类:原创文章

本文共 486 字,大约阅读时间需要 1 分钟。

题目

题目描述
输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

输入格式
n(1≤n≤9)

输出格式
由1~n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个常宽。

输入输出样例
输入 #1 复制
3
输出 #1 复制
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

#include <bits/stdc++.h>using namespace std;int a[15],b[15];int n;int f(int x){	int i,j,k;	if(x==n)	{		for(i=0;i<n;i++)		cout<<setw(5)<<b[i];		cout<<endl;		}		for(j=1;j<=n;j++)	{		if(a[j]==0)		{			b[x]=j;			a[j]=1;			f(x+1);				//回溯 			a[j]=0;		}		}}int  main(){	memset(a,0,sizeof(a));	cin>>n;	f(0);	return 0;} 
上一篇:linux各种软件的安装
下一篇:Linux基本操作

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月03日 22时57分36秒