OJ现已增加邮箱找回密码功能,还没有绑定邮箱的同学们请抓紧时间,以免密码丢失无法找回


问题1132--全排列

1132: 全排列

时间限制: 1 Sec  内存限制: 128 MB
提交: 423  解决: 186
[提交] [状态] [讨论版] [命题人:]

题目描述

全排列1到n
要求实现函数:
int p[20],vis[20];//请将数组也一同提交
void next_pre(int n,int x)//输出所有排列(n个数字,当前第x个位置) ,按字典序排序,下方有解释
void solve(int n){    //内部调用next_pre来运行
    void next_pre(int n, int x);//函数声明
}

C/C++只能提交上面的代码及其函数和函数内容,否则编译错误
Java
函数原型  
public static void dfs(int d,int n,int[] vis,int[] a)
(d 为排列的第几个数字, n为要求排的数字个数, vis用来表示哪些数字用过, a用来存放排列的数字)
// 温馨提示,d初始值为1

输入

给你一个n(1<=n<=7)

输出

n! 行所有排列




按字典序从小到大排列。
字典序:
对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。
例如对于5个数字的排列 12354和12345,排列12345在前,排列12354在后。
按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是 54321。
如果第一个字母一样,那么比较第二个、第三个乃至后面的字母。如果比到最后两个单词不一样长(比如,sigh 和 sight),那么把短者排在前。

(引用百度百科)

样例输入 Copy

3

样例输出 Copy

123
132
213
231
312
321

来源/分类

函数