首页 > 其他分享 >全排列问题

全排列问题

时间:2023-03-04 11:22:54浏览次数:32  
标签:输出 排列 int 样例 dfs 问题 重复

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

样例输入1

3

样例输出1

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

code:

#include <bits/stdc++.h>
using namespace std;
int a[101],n;
bool v[21];
void dfs(int k){
	if(k == n+1){
		for(int i = 1;i<=n;i++){
			cout<< a[i]<<" ";
		}
		cout<<endl;
		return;
	} 
	for(int i = 1;i<=n;i++){
		if(!v[i]){
			a[k] = i;
			v[i] = true;
			dfs(k+1);
			v[i] = 0;
		}
	}
	
}
int main(){
	cin>>n;
	dfs(1);
}

  

标签:输出,排列,int,样例,dfs,问题,重复
From: https://www.cnblogs.com/nasia/p/17177908.html

相关文章