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

0
0
已解决
许金夫
许金夫
初级天翼
初级天翼

区区全排列我竟然WA90

 

 

3406   全排列经验值:400

题目描述 Description

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

输入描述 Input Description

输入一个自然数n(1≤n≤9)

输出描述 Output Description

由1~n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个常宽。

样例输入 Sample Input

3

样例输出 Sample Output

1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1

数据范围及提示 Data Size & Hint

注意:输出样例第一行应该是与下面的各行对齐的,由于浏览器原因,此处无法正常显示

 

 

#include <bits/stdc++.h>
using namespace std;
int used[10];
int pl[10];
int n,cnt=0;
void dfs(int t){
    if(t>n){
        for(int i=1;i<=n;i++){
            cout<<"    "<<pl[i];
        }
        cout<<endl;
        return ;
    }
    for(int i=1;i<=n;i++){
        if(used[i]==0){
            pl[t]=i;
            used[i]=1;
            dfs(t+1);
            used[i]=0;
        }
    }
}
int main(){
    cin>>n;
    dfs(1); 
    return 0;
}

 

 

 

HELP


0
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者

数组范围大一点,考虑n=1等特殊情况

0
我要回答