#OD220. 第k个排列

第k个排列

题目解析和算法源码

华为OD机试 - 第k个排列(Java & JS & Python & C & C++)_华为od 第k个排列_伏城之外的博客-CSDN博客

题目描述

给定参数 n,从 1 到 n 会有 n 个整数:1,2,3,…,n, 这 n 个数字共有 n! 种排列。

按大小顺序升序列出所有排列的情况,并一一标记,当 n = 3 时,所有排列如下:

  • “123”
  • “132”
  • “213”
  • “231”
  • “312”
  • “321”

给定 n 和 k,返回第 k 个排列。

输入描述

输入两行,第一行为 n,第二行为 k,

给定 n 的范围是[1, 9], 给定 k 的范围是[1, n!]。

输出描述

输出排在第 k 位置的数字。

用例1

输入

3
3

输出

213

说明

3的排列有123,132,213…,那么第三位置就是213

用例2

输入

2
2

输出

21

说明

2的排列有12,21,那么第二位置的为21。