import java.util.ArrayList;
import java.util.List;
public class KthPermutation {
public static String getPermutation(int n, int k) {
// 计算阶乘
int[] factorial = new int[n];
factorial[0] = 1;
for (int i = 1; i < n; i++) {
factorial[i] = factorial[i - 1] * i;
}
// 生成数字列表
List<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= n; i++) {
numbers.add(i);
}
// 调整k为0-based索引
k--;
StringBuilder result = new StringBuilder();
for (int i = n - 1; i >= 0; i--) {
int index = k / factorial[i];
result.append(numbers.remove(index));
k %= factorial[i];
}
return result.toString();
}
public static void main(String[] args) {
int n = 3;
int k = 3;
System.out.println(getPermutation(n, k)); // 输出 "213"
}
}