您的位置:首页 > 其它

暴力法生成1~n的排列

2014-07-07 12:24 162 查看
#include<iostream>
using namespace std;
void print_permutation(int n,int* A,int cur)
{
int i,j;
if(cur==n) //结束条件,递归边界
{
for(i=0; i<n; i++) cout<<" "<<A[i];
cout<<endl;
}
else
for(i=1; i<=n; i++) //尝试在A[cur]中填各种整数i
{
int ok=1;
for(j=0; j<cur; j++)
if(A[j]==i) ok=0;//如果i已经在A[0]~A[cur-1]出现过,则不能再选
if(ok)
{
A[cur]=i;
print_permutation(n,A,cur+1);//递归调用
}
}
}
int main()
{
int n;
int a[100];
while(cin>>n)
{
print_permutation(n,a,0);  //初始条件
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: