华为OD机试E卷 –第k个排列 –24年OD统一考试(Java & JS & Python & C & C++)
文章目录
题目描述
给定参数n,从1到n会有n个整数:1,2,3,…,n,这n个数字共有nl种排列。按大小顺序升序列出所有排列的情况,并——标记,
当n=3时,所有排列如下:
“123″“132”“213”“231″“312″“321”
给定n和k,返回第k个排列。
输入描述
输入两行,第一行为n,第二行为k,
给定n的范围是[1,9],给定k的范围是[1,n!]。
输出描述
输出排在第k位置的数字。
用例
输入
3
3
输出
213
说明
3的排列有123,132,213…那么第三位置就是213
输入
2
2
输出
21
说明
2的排列有12,21 那么第二位置的为21
题目解析
我们可以使用数学上的阶乘数和排列组合的知识来
作者:飞码创造者