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;
}
哪错了??????????????