package notsubmit;
public class GetPermutation {
public String getPermutation(int n, int k) {
StringBuffer sb = new StringBuffer();
boolean[] nArr = new boolean[n];
for(int i = 0; i < n; i++) {
nArr[i] = true;
}
int tmpK = k;
int tmpN = n;
int move = 0;
while(tmpK != 0 && tmpN > 0) {
int jc = jc(tmpN - 1);
if(jc >= tmpK) {
for(int i = 0; i < n; ++i) {
if(nArr[i] == true && move > 0) {
move--;
continue;
}
if(nArr[i] == true && move == 0) {
sb.append(i + 1);
nArr[i] = false;
tmpN--;
break;
}
}
}else {
move++;
tmpK = tmpK - jc;
}
}
return sb.toString();
}
public int jc(int n) {
int ans = 1;
for(int i = 1; i <=n; ++i) {
ans *= i;
}
return ans;
}
public static void main(String[] args) {
int n = 4;
int k = 9;
GetPermutation gp = new GetPermutation();
String ans = gp.getPermutation(n, k);
System.out.println(ans);
}
}