#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
/*递归实现(一)
int n;
int visit[11],ans[11];
void dfs(int depth)
{
if(depth>n){
for(int i=1;i<=n;i++)
cout<<ans[i];
cout<<endl;
}
else{
for(int i=1;i<=n;i++){
if(visit[i]==0){
visit[i]=1;
ans[depth]=i;
dfs(depth+1);
visit[i]=0;
}
}
}
}
int main()
{
while(cin>>n){
memset(visit,0,sizeof(visit));
dfs(1);
}
return 0;
}
*/
/*
//递归实现(二)
int n;
int visit[11],ans[11];
void dfs(int depth)
{
for(int i=1;i<=n;i++){
if(visit[i]==0){
visit[i]=1;
ans[depth]=i;
if(depth==n){
for(int i=1;i<=n;i++)
cout<<ans[i];
cout<<endl;
}
else
dfs(depth+1);
visit[i]=0;
}
}
}
int main()
{
while(cin>>n){
memset(visit,0,sizeof(visit));
dfs(1);
}
return 0;
}
*/
/*STL next_permutation(a+0,a+n)实现
int main()
{
int n;
char a[100];
while(cin>>n){
int num=1;
for(int i=1;i<=n;i++)
num*=i;
for(int i=0;i<n;i++)
a[i]='A'+i;
for(int i=1;i<=num;i++){
for(int j=0;j<n;j++)
cout<<a[j];
cout<<endl;
next_permutation(a+0,a+n);
}
}
}
*/
全排列的实现方法
最新推荐文章于 2020-07-30 08:42:30 发布