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

0
0
已解决
张展嘉
张展嘉
新手天翼
新手天翼

3406   全排列经验值:1200

题目描述 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

#include<iostream>

#include<cstring>

#include<cmath>

#include<string>

#include<cstdio>

using namespace std;

int a[15],used[15],n;

int dir[4][2];

void dfs(int t){

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

if(used[i]==0){

a[t]=i;

used[i]=1;

dfs(t+1);

used[i]=0;

}

}

if(t==n){

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

cout<<a[i]<<" ";

cout<<"\n";

return;

}

}

int main(){

cin>>n;

dfs(1);

return 0;

}

为什么0分?


0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

输出不对,要对齐输出

这样输出

for(int i=1;i<=n;i++){
    cout<<setw(5)<<a[i];
}

最后输出"\n"

我要回答