递归实现排列型枚举
递归实现排列型枚举
题目不难
#include<iostream>
#include<cstdio>
using namespace std;
bool a[10];
int b[10];
int n;
void work(int x)
{
if(x==n+1)
{
for(int i=1;i<=n;i++)
//cout<<b[i]<<" ";超时
printf("%d ",b[i]);
//cout<<endl;
puts("");//相当于换行
return ;
}
for(int i=1;i<=n;i++)
{
if(a[i])continue;
b[x]=i;
a[i]=1;
work(x+1);
a[i]=0;
}
}
int main()
{
cin>>n;
work(1);
return 0;
}
作者:qbning
-------------------------------------------
个性签名:曾经的我们空有一颗望海的心,却从没为前往大海做过真正的努力
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!