生成排列

来源:互联网 发布:在淘宝买手机好吗 编辑:程序博客网 时间:2024/04/29 00:24
//从1到m中取n个数,不允许重复取数#include <iostream>using namespace std;int n,a[10];bool bz[10];void output(){    int i;    for (i=1;i<=n; i++)        cout<<a[i]<<" ";    cout<<endl;}void  f(int cur) //回溯{    if  (cur==n+1) output();//选好了所有的数    else        for (int i=1; i<=n; i++)//表示cur可以选1到n            if ( !bz[i] ) //没有用过就做            {                a[cur]=i;                bz[i]=true;//表示i已经用了                f(cur+1);                bz[i]=false; //把i置为没有用过,供下一次使用            }}int main(){    cin>>n;    f(1);//从一开始    return 0;}


 

原创粉丝点击