问题标题: 酷町堂:全排列问题

0
0
已解决
刘云晖
刘云晖
中级守护
中级守护

题目链接: 酷町堂:1011

1011   全排列问题

经验值:1600 时间限制:1000毫秒内存限制:128MB

题目描述 Description

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

输入描述 Input Description

n(1≤n≤9)

输出描述 Output Description

由1~n组成的所有不重复的数字序列,每行一个序列,按照字典序逐行增大的顺序输出。

样例输入 Sample Input

3

样例输出 Sample Output

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

#include<iostream>

#include<iomanip>

using namespace std;

int a[10001]={0},n;

bool b[10001]={0};

void s(int);

void print();

int main(){

    cin>>n;

s(1);

return 0;

}

s(int k){

for(int i=1;i<=n;i++){

if(!b[i]){

a[k]=i;

b[i]=1;

if(k==n) print();

else s(k+1);

b[i]=0;

}

}

}

void print(){

for(int i=1;i<=n;i++){

cout<<a[i]<<' ';

 

}

cout<<endl;

}

哪错了??????????????


0
我要回答