AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3800. 第N个排列

中等通过率 78% · 提交 333 · 通过 260
回溯字符串数学

小慕正在处理一个编号系统,给定参数 n,从 1 到 n 会有 n 个整数 1,2,3,...,n。 这 n 个数字共有 种排列,小慕需要情况,并一一标记。 当 n = 3 时,所有排列如下:"123","132","213","231","312","321"。 给定 n 和 k,小慕需要返回

提示:带虚线的词点一下有通俗解释。

输入描述

第一行为 <code>n</code> 第二行为 <code>k</code> n 的范围是 <code>1 ~ 9</code> k 的范围是 <code>1 ~ n!</code>

输出描述

输出排列第 k 位置的数字

示例

示例 1

输入

3
3

输出

213

示例 2

输入

2
2

输出

21

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
n=3 时所有排列(升序)第1个: 123第2个: 132第3个: 213 (k=3)第4个: 231第5个: 312第6个: 321输入: n=3, k=3 → 输出: 213第k个排列
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「第N个排列」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。